Object positioning method, device, electronic device and computer readable medium
By receiving object positioning requests and performing point cloud data segmentation and local point cloud map interception, combined with multi-layer multi-resolution frame matching and registration, the relocation method in the prior art has large storage space, low robustness and slow speed. The problem of efficient and robust object positioning is achieved.
Patent Information
- Application Number
- CN202111289478.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-11-02
- Publication Date
- 2025-02-21
- Estimated Expiration
- 2041-11-02
AI Technical Summary
When using the information of lidar to correct the position position in the prior art, the repositioning method occupies a large storage space, is low robustness and is slow in speed.
By receiving object positioning requests, the point cloud data corresponding to the position pose of the current frame is obtained, and the point cloud data is divided into ground and non-ground data. Then, call the prior point cloud map to capture the local point cloud map, perform multi-layer multi-resolution frame matching and registration, and determine the pose transformation values corresponding to non-terrestrial point cloud data and ground point cloud data.
A lightweight storage object positioning method is realized, which enhances the robustness and speed of repositioning.
Smart Images

Figure CN113936046B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computer technology, and in particular to an object positioning method, device, electronic device and computer-readable medium. Background Art
[0002] Currently, when using lidar information to correct the posture, the relocalization method takes up a lot of storage space, has low robustness and is slow.
[0003] In the process of implementing this application, the inventors found that there are at least the following problems in the prior art:
[0004] When using lidar information to correct the posture, the relocalization method takes up a lot of storage space, has low robustness and is slow. Summary of the invention
[0005] In view of this, the embodiments of the present application provide an object positioning method, device, electronic device and computer-readable medium, which can solve the problems of large storage space occupation, low robustness and slow speed of the existing repositioning method when using laser radar information to correct the posture.
[0006] To achieve the above objective, according to one aspect of an embodiment of the present application, a method for locating an object is provided, comprising:
[0007] Receive object positioning request, obtain point cloud data corresponding to the object posture of the current frame, and segment the point cloud data to obtain ground point cloud data of the current frame and non-ground point cloud data of the current frame;
[0008] Obtain the map location information of the object corresponding to the object positioning request, and then call the prior point cloud map to intercept the local point cloud map, and then determine the local map ground point cloud data and the local map non-ground point cloud data;
[0009] Perform multi-layer and multi-resolution frame matching on the non-ground point cloud data of the current frame and the non-ground point cloud data of the local map, align the ground point cloud data of the current frame with the ground point cloud data of the local map, and determine the corresponding pose transformation values of the non-ground point cloud data and the ground point cloud data;
[0010] Based on the map position information and the pose transformation value, the pose information of the object in the current frame is determined and output.
[0011] Optionally, extracting a local point cloud map from a priori point cloud map based on map information includes:
[0012] Determine the maximum effective distance and search range of the laser device for acquiring point cloud data;
[0013] Determine the interception range based on the effective distance and the search range;
[0014] Based on the interception range, a local point cloud map is intercepted from the prior point cloud map.
[0015] Optionally, determining the pose transformation values corresponding to the non-ground point cloud data and the ground point cloud data includes:
[0016] Construct a probability grid map of a preset number of layers based on the non-ground point cloud data of the local map;
[0017] Dividing the non-ground point cloud data of the current frame into a preset number of layers, determining the candidate poses of the current frame, and then determining the probability value of each candidate pose in the probability grid map based on the non-ground point cloud data of the current frame divided into the preset number of layers and the probability grid map;
[0018] According to the probability value, determine the priority queue of candidate poses;
[0019] Based on the candidate pose priority queue, determine the pose transformation value corresponding to the non-ground point cloud data;
[0020] The ground point cloud data of the current frame is spatially transformed to be mapped to the local map to obtain the mapped point cloud data, and then the pose transformation value corresponding to the ground point cloud data is determined based on the mapped point cloud data and the ground point cloud data of the local map.
[0021] Optionally, based on the candidate pose priority queue, determining a pose transformation value corresponding to the non-ground point cloud data includes:
[0022] The probability grid map corresponding to the candidate pose priority queue is branched to obtain a branch probability grid map;
[0023] Based on each candidate pose and each branch probability grid map, determine the branch probability value of each candidate pose in the probability grid map after branching, and then determine the candidate pose priority queue of the branch according to the branch probability value;
[0024] Based on the branch's candidate pose priority queue, the candidate pose priority queue is updated, and then based on the branch's candidate pose priority queue, the candidate pose with the largest branch probability value is determined, and then the pose transformation value of the non-ground point cloud data is determined according to the candidate pose with the largest branch probability value.
[0025] Optionally, based on the candidate pose priority queue of the branch, determining the candidate pose with the maximum branch probability value includes:
[0026] In response to determining that the branch candidate pose priority queue includes only one branch candidate pose, the branch candidate pose is determined to be the candidate pose with the largest branch probability value in the branch candidate pose priority queue.
[0027] Optionally, before determining the candidate pose of the current frame, the method further includes:
[0028] Update the height of each point in each layer of non-ground point cloud data of the current frame to the height of the corresponding layer.
[0029] Optionally, determining the probability value of each candidate pose in the probability grid map includes:
[0030] Determine the layer probability value of each layer of non-ground point cloud data of the current frame corresponding to each candidate pose in the probability grid map of the corresponding layer;
[0031] The probability values of each layer are summed and averaged to obtain the probability value of each candidate pose in the probability grid map.
[0032] Optionally, determining a candidate pose for the current frame includes:
[0033] Determine a candidate pose search range, and then determine the number of candidate poses for the current frame based on a preset resolution;
[0034] Based on the candidate pose search range and the number of candidate poses, the candidate pose of the current frame is determined.
[0035] In addition, the present application also provides an object positioning device, comprising:
[0036] A receiving unit is configured to receive an object positioning request, thereby obtaining point cloud data corresponding to the object posture of the current frame, and segmenting the point cloud data to obtain ground point cloud data of the current frame and non-ground point cloud data of the current frame;
[0037] The interception unit is configured to obtain the map position information of the object corresponding to the object positioning request, and then call the prior point cloud map to intercept the local point cloud map, and then determine the local map ground point cloud data and the local map non-ground point cloud data;
[0038] A pose transformation value determination unit is configured to perform multi-layer and multi-resolution frame matching on the non-ground point cloud data of the current frame and the non-ground point cloud data of the local map, register the ground point cloud data of the current frame with the ground point cloud data of the local map, and determine the pose transformation values corresponding to the non-ground point cloud data and the ground point cloud data;
[0039] The positioning unit is configured to determine the pose information of the object in the current frame based on the map position information and the pose transformation value, and output it.
[0040] Optionally, the interception unit is further configured to:
[0041] Determine the maximum effective distance and search range of the laser device for acquiring point cloud data;
[0042] Determine the interception range based on the effective distance and the search range;
[0043] Based on the interception range, a local point cloud map is intercepted from the prior point cloud map.
[0044] Optionally, the posture transformation value determination unit is further configured to:
[0045] Construct a probability grid map of a preset number of layers based on the non-ground point cloud data of the local map;
[0046] Dividing the non-ground point cloud data of the current frame into a preset number of layers, determining the candidate poses of the current frame, and then determining the probability value of each candidate pose in the probability grid map based on the non-ground point cloud data of the current frame divided into the preset number of layers and the probability grid map;
[0047] According to the probability value, determine the priority queue of candidate poses;
[0048] Based on the candidate pose priority queue, determine the pose transformation value corresponding to the non-ground point cloud data;
[0049] The ground point cloud data of the current frame is spatially transformed to be mapped to the local map to obtain the mapped point cloud data, and then the pose transformation value corresponding to the ground point cloud data is determined based on the mapped point cloud data and the ground point cloud data of the local map.
[0050] Optionally, the posture transformation value determination unit is further configured to:
[0051] The probability grid map corresponding to the candidate pose priority queue is branched to obtain a branch probability grid map;
[0052] Based on each candidate pose and each branch probability grid map, determine the branch probability value of each candidate pose in the probability grid map after branching, and then determine the candidate pose priority queue of the branch according to the branch probability value;
[0053] Based on the branch's candidate pose priority queue, the candidate pose priority queue is updated, and then based on the branch's candidate pose priority queue, the candidate pose with the largest branch probability value is determined, and then the pose transformation value of the non-ground point cloud data is determined according to the candidate pose with the largest branch probability value.
[0054] Optionally, the posture transformation value determination unit is further configured to:
[0055] In response to determining that the branch candidate pose priority queue includes only one branch candidate pose, the branch candidate pose is determined to be the candidate pose with the largest branch probability value in the branch candidate pose priority queue.
[0056] Optionally, the object positioning device further includes a preprocessing unit configured to:
[0057] Update the height of each point in each layer of non-ground point cloud data of the current frame to the height of the corresponding layer.
[0058] Optionally, the posture transformation value determination unit is further configured to:
[0059] Determine the layer probability value of each layer of non-ground point cloud data of the current frame corresponding to each candidate pose in the probability grid map of the corresponding layer;
[0060] The probability values of each layer are summed and averaged to obtain the probability value of each candidate pose in the probability grid map.
[0061] Optionally, the posture transformation value determination unit is further configured to:
[0062] Determine a candidate pose search range, and then determine the number of candidate poses for the current frame based on a preset resolution;
[0063] Based on the candidate pose search range and the number of candidate poses, the candidate pose of the current frame is determined.
[0064] In addition, the present application also provides an object positioning electronic device, including: one or more processors; a storage device for storing one or more programs, when the one or more programs are executed by one or more processors, the one or more processors implement the object positioning method as described above.
[0065] In addition, the present application also provides a computer-readable medium on which a computer program is stored, and when the program is executed by a processor, the object positioning method as described above is implemented.
[0066] One embodiment of the above invention has the following advantages or beneficial effects: the present application receives an object positioning request, thereby obtaining point cloud data corresponding to the posture of the object in the current frame, and divides the point cloud data to obtain the ground point cloud data of the current frame and the non-ground point cloud data of the current frame; obtains the map position information of the object corresponding to the object positioning request, and then calls the prior point cloud map to intercept the local point cloud map, and then determines the ground point cloud data of the local map and the non-ground point cloud data of the local map; performs multi-layer and multi-resolution frame matching on the non-ground point cloud data of the current frame and the non-ground point cloud data of the local map, aligns the ground point cloud data of the current frame with the ground point cloud data of the local map, and determines the posture transformation values corresponding to the non-ground point cloud data and the ground point cloud data; based on the map position information and the posture transformation value, determines the posture information of the object in the current frame, and outputs it. Lightweight storage can be achieved by only requiring the current frame and the prior global point cloud map and by intercepting the local point cloud map. The non-ground point cloud data is passed through a multi-layer and multi-resolution frame matching algorithm to determine the pose transformation value corresponding to the non-ground point cloud data of the current frame. The distribution information of the point cloud in height is retained to a certain extent, thereby enhancing the repositioning robustness.
[0067] The further effects of the above-mentioned non-conventional optional manner will be described below in conjunction with the specific implementation manner. BRIEF DESCRIPTION OF THE DRAWINGS
[0068] The accompanying drawings are used to better understand the present application and do not constitute an improper limitation on the present application.
[0069] Figure 1 is a schematic diagram of the main process of the object positioning method according to the first embodiment of the present application;
[0070] Figure 2 is a schematic diagram of the main process of the object positioning method according to the second embodiment of the present application;
[0071] Figure 3 is a schematic diagram of an application scenario of the object positioning method according to the third embodiment of the present application;
[0072] Figure 4 is a schematic diagram of main units of an object positioning device according to an embodiment of the present application;
[0073] Figure 5 is an exemplary system architecture diagram to which the embodiments of the present application can be applied;
[0074] Figure 6 It is a structural diagram of a computer system of a terminal device or server suitable for implementing an embodiment of the present application. DETAILED DESCRIPTION
[0075] The following is a description of exemplary embodiments of the present application in conjunction with the accompanying drawings, including various details of the embodiments of the present application to facilitate understanding, which should be considered as merely exemplary. Therefore, it should be recognized by those of ordinary skill in the art that various changes and modifications can be made to the embodiments described herein without departing from the scope and spirit of the present application. Similarly, for the sake of clarity and conciseness, the description of well-known functions and structures is omitted in the following description.
[0076] Figure 1 is a schematic diagram of the main process of the object positioning method according to the first embodiment of the present application, such as Figure 1 As shown, the object positioning method includes:
[0077] Step S101, receiving an object positioning request, and then obtaining point cloud data corresponding to the object posture of the current frame, and segmenting the point cloud data to obtain ground point cloud data of the current frame and non-ground point cloud data of the current frame.
[0078] In this embodiment, the execution subject of the object positioning method (for example, it can be a server) can receive an object positioning request through a wired connection or a wireless connection, and the object positioning request can be a request for global repositioning of the unmanned vehicle. After receiving the object positioning request, the execution subject can call the 3D laser radar to obtain the 3D laser radar data corresponding to the pose (i.e., position and posture) of the object in the current frame, and then obtain the corresponding point cloud data based on the 3D laser radar data. Then, the execution subject can call the ground segmentation algorithm of the three-dimensional point cloud (such as the region growing algorithm, the linefit algorithm, etc.) to segment the point cloud data to generate the current frame ground point cloud data and the current frame non-ground point cloud data.
[0079] Step S102, obtaining the map location information of the object corresponding to the object positioning request, and then calling the prior point cloud map to intercept the local point cloud map, and then determining the local map ground point cloud data and the local map non-ground point cloud data.
[0080] The execution entity can obtain the map location information of the object corresponding to the object positioning request from the global navigation satellite system GNSS. For example, the longitude and latitude information of the unmanned vehicle is obtained, and then converted to the UTM coordinate system to obtain the specific map location information corresponding to the map. Then, the execution entity can call the prior point cloud map (including ground point cloud and non-ground point cloud), and according to the map location information and the interception range determined by the 3D laser radar, intercept the local point cloud map from the prior point cloud map. Then, the execution entity can call the ground segmentation algorithm of the three-dimensional point cloud (such as the region growing algorithm, the linefit algorithm, etc.) to segment the point cloud data in the local point cloud map to generate local map ground point cloud data and local map non-ground point cloud data.
[0081] Step S103, performing multi-layer and multi-resolution frame matching on the non-ground point cloud data of the current frame and the non-ground point cloud data of the local map, aligning the ground point cloud data of the current frame with the ground point cloud data of the local map, and determining the posture transformation values corresponding to the non-ground point cloud data and the ground point cloud data.
[0082] The execution subject can perform multi-layer and multi-resolution frame matching of the current frame non-ground point cloud data and the local map non-ground point cloud data, and solve the transformation value of the current frame non-ground point cloud data corresponding to the object (for example, it can be an unmanned vehicle) relative to the local map non-ground point cloud data (for example, it can be an unmanned vehicle) along the x-direction and y-direction of the UTM coordinate system and the transformation value of the corresponding Euler angle yaw angle. The yaw angle is the heading angle, that is, the angle of rotation of the current frame non-ground point cloud data corresponding to the object (for example, it can be an unmanned vehicle) relative to the local map non-ground point cloud data (for example, it can be an unmanned vehicle) around the z-axis.
[0083] The execution subject can register the ground point cloud data of the current frame with the ground point cloud data of the local map through a registration algorithm (such as ICP, NICP, GICP, etc.), and solve the transformation value along the z direction of the UTM coordinate system and the transformation value of the corresponding Euler angle (roll angle and pitch angle). Roll is the roll angle, which can be regarded as the tilt of the object (such as an unmanned vehicle) in the left and right directions, and pitch is the pitch angle, which can be regarded as the tilt of the object (such as an unmanned vehicle) in the front and back directions.
[0084] Specifically, determining the pose transformation values corresponding to the non-ground point cloud data and the ground point cloud data includes:
[0085] Construct a probability grid map of a preset number of layers based on the non-ground point cloud data of the local map. The preset number of layers can be, for example, h layers. For example, the execution entity can perform point cloud voxel filtering on the non-ground point cloud data of the local map, set the height range of the point cloud, such as (a, z), and divide the point cloud into h layers. Each layer is divided into m*n grids according to the initial resolution. The size of the probability grid map is related to the size of the local point cloud map. The initial resolution is the highest resolution. At this time, the size of a single grid is the smallest, which can be 0.25 meters, m = local point cloud map length / 0.25, n = local point cloud map width / 0.25. Each grid of each layer of the grid stores the number of point clouds of the current grid of that layer. The execution entity can set a maximum number limit for each grid point cloud and normalize the number of points in the grid to the range of 0-1.
[0086] The non-ground point cloud data of the current frame is divided into a preset number of layers, and the candidate poses of the current frame are determined. Then, based on the non-ground point cloud data of the current frame divided into the preset number of layers and the probability grid map, the probability value of each candidate pose in the probability grid map is determined.
[0087] Specifically, the execution subject may perform point cloud voxel filtering on the non-ground point cloud data of the current frame, and divide the data into h layers according to the set point cloud height range (a, z), and fix the height of each point in each layer to the height of the layer.
[0088] The search ranges of the x direction, y direction and yaw angle in the UTM coordinate system are set respectively, and then the number of candidate poses and candidate poses are determined according to the set search ranges. The matching scores of the multi-layer current frame non-ground point cloud data and the multi-layer probability grid map corresponding to each candidate pose are calculated based on the current frame non-ground point cloud data and the probability grid map divided into a preset number of layers, and the matching scores corresponding to each candidate pose are determined as the probability values of each candidate pose in the probability grid map.
[0089] According to the probability value, determine the candidate pose priority queue. The candidate pose priority queue is a queue that arranges the candidate poses from large to small according to the matching score. The execution entity can determine the candidate poses corresponding to the top w probability values, and then form a candidate pose priority queue with the top w candidate poses.
[0090] Based on the candidate pose priority queue, the pose transformation value corresponding to the non-ground point cloud data is determined.
[0091] Specifically, the execution entity may determine the candidate posture with the largest corresponding probability value in the candidate posture priority queue as the target posture. Then, the execution entity may align the non-ground point cloud data of the current frame with the target posture to determine the transformation values of the x direction, y direction and yaw angle in the UTM coordinate system corresponding to the non-ground point cloud data. Of course, the execution entity may also align the non-ground point cloud data of the current frame with the first k candidate postures in the candidate posture priority queue, respectively, and sum and average the transformation values of the x direction, y direction and yaw angle in the UTM coordinate system corresponding to the obtained non-ground point cloud data to obtain the final transformation values of the x direction, y direction and yaw angle in the UTM coordinate system corresponding to the non-ground point cloud data.
[0092] When determining the pose transformation value corresponding to the ground point cloud data, the executing entity can perform spatial transformation on the ground point cloud data of the current frame to map it to the local map to obtain mapped point cloud data, and then determine the pose transformation value corresponding to the ground point cloud data based on the pose difference between the mapped point cloud data and the ground point cloud data of the local map.
[0093] Specifically, before determining the candidate pose of the current frame, the method further includes:
[0094] Update the height of each point in each layer of non-ground point cloud data of the current frame to the height of the corresponding layer to ensure that the highest height information of the current frame is consistent with the highest height information of the local point cloud map intercepted by the prior point cloud map, so as to ensure that the final target pose, i.e. the relocated pose, is more accurate.
[0095] Specifically, determining the candidate pose of the current frame includes:
[0096] Determine a candidate pose search range, and then determine the number of candidate poses for the current frame based on a preset resolution; determine the candidate poses for the current frame based on the candidate pose search range and the number of candidate poses.
[0097] For example, determine that the x direction in the UTM coordinate system is from -10 to 10, the y direction is from -10 to 10, the resolution is 1, and the yaw angle is from 0 to 360°, then the number of candidate poses is [10-(-10)]*[10-(-10)]*(360-0)=20*20*360 candidate poses, then it is necessary to determine 20*20*360 candidate poses within the candidate pose search range of -10 to 10 in the x direction, -10 to 10 in the y direction, the resolution is 1, and the yaw angle is from 0 to 360°. Specifically, at a resolution of 1, the x direction from -10 to 10 can be evenly divided into 20, the y direction from -10 to 10 can be evenly divided into 20, the yaw angle from 0 to 360° can be evenly divided into 360, and then the average division results of the x direction, y direction, and yaw angle can be arranged and combined to generate 20*20*360 candidate poses.
[0098] Specifically, determining the probability value of each candidate pose in the probability grid map includes:
[0099] Determine the layer probability value of each layer of non-ground point cloud data of the current frame corresponding to each candidate pose in the probability grid map of the corresponding layer. For example, each layer of non-ground point cloud data of the current frame corresponding to each candidate pose is divided into 2 layers, and the probability value P1 of each point in the first layer of the non-ground point cloud data of the current frame in the constructed first layer probability grid map is determined, and the probability value P2 of each point in the second layer of the non-ground point cloud data of the current frame in the constructed second layer probability grid map is determined.
[0100] Sum the probability values of each layer and take the average value to get the probability value of each candidate pose in the probability grid map. For example, sum and average P1 and P2 to get the probability values of the candidate poses corresponding to P1 and P2 in the probability grid map. The calculation method of the probability values corresponding to other candidate poses in the probability grid map is the same and will not be repeated here.
[0101] In some optional implementations of the embodiments of the present application, the probability grid map corresponding to the local point cloud map can also be constructed into a multi-scale probability grid map. When searching, you can first search on the large-scale probability grid map, and for each candidate large-scale probability grid map, you can branch out multiple sub-large-scale probability grid maps until you branch to the minimum-scale probability grid map. The minimum-scale pose with the largest matching score can be found. This avoids the huge amount of calculations of directly traversing the minimum-scale map and improves the speed of pose relocation.
[0102] Specifically, based on the candidate pose priority queue, the pose transformation value corresponding to the non-ground point cloud data is determined, including:
[0103] The probability grid map corresponding to the candidate pose priority queue is branched to obtain a branch probability grid map.
[0104] For example, a large-scale probability grid map is branched into a sub-large-scale probability grid map. If necessary, the sub-large-scale probability grid map can be further branched into a small-scale probability grid map to calculate more subtle posture transformation values. If necessary, a larger-scale probability grid map can be added to accelerate the search for the target posture (i.e., the final repositioning posture). Among them, the size of each grid of the large-scale probability grid map can be 1m, the size of each grid of the sub-large-scale probability grid map can be 0.5m, and the size of each grid of the small-scale probability grid map can be 0.25 meters. The embodiment of the present application does not limit the size of each grid of each scale probability grid map.
[0105] Based on each candidate pose and each branch probability grid map, determine the branch probability value of each candidate pose in the probability grid map after branching, and then determine the candidate pose priority queue of the branch according to the branch probability value. For example, when branching from a large-scale probability grid map to a small-scale probability grid map, for example, a large-scale probability grid map can be divided into 4 sub-large-scale probability grid maps, and the execution body can calculate the probability value of each candidate pose in multiple layers of sub-large-scale probability grid maps, which is the branch probability value. The branch probability value corresponding to each candidate pose can be obtained by adding and averaging the probability values of the sub-large-scale probability grid maps of each layer corresponding to each candidate pose (assuming that only branches to the sub-large-scale probability grid map). The probability value of each grid in the probability grid map is obtained by adding and averaging the probability values corresponding to the points in each grid of the point cloud.
[0106] The candidate pose priority queue is updated based on the branch candidate pose priority queue, and then the candidate pose with the largest branch probability value is determined based on the branch candidate pose priority queue, and then the pose transformation value of the non-ground point cloud data is determined according to the candidate pose with the largest branch probability value. Specifically, the non-ground point cloud data of the local map is aligned with the point cloud data corresponding to the candidate pose with the largest branch probability value, and the difference in position and posture is obtained, and then the pose transformation value is determined according to the obtained difference in position and posture.
[0107] Specifically, based on the candidate pose priority queue of the branch, the candidate pose with the largest branch probability value is determined, including:
[0108] In response to determining that the branch candidate pose priority queue includes only one branch candidate pose (i.e., until the branch cannot continue to find the pose with the largest matching probability value), the branch candidate pose is determined as the candidate pose with the largest branch probability value in the branch candidate pose priority queue.
[0109] The embodiment of the present application restricts the traversal of the candidate pose priority queue and accelerates it with multithreading. It starts by using a multithreading method to traverse the first R items of the priority queue composed of candidate poses under the large-scale probability grid map, and then branches the large-scale probability grid map to obtain the corresponding second-large-scale probability grid map, and then determines the candidate pose under the second-large-scale probability grid map, and calculates its probability value (i.e., matching score). The candidate pose priority queue is updated based on the candidate pose of the corresponding second-large-scale probability grid map.
[0110] Continue to repeatedly use multi-threaded traversal to update the first R items of the candidate pose priority queue, then branch the next largest scale probability grid map to obtain the corresponding small scale probability grid map, then determine the candidate pose under the small scale probability grid map, and calculate the matching score of the candidate pose under the small scale probability grid map in the small scale probability grid map. Update the candidate pose priority queue based on the candidate pose under the corresponding next largest scale probability grid map or the small scale probability grid map. If the probability grid map cannot be further branched, for example, the number of branches reaches a preset number of times, or the candidate poses obtained after each branch are the same, then the candidate pose with the largest probability value under the minimum scale map is obtained, that is, the pose with the best matching score. Compared with sequentially traversing or judging all candidate poses in the candidate pose priority queue, it saves more time searching for the target pose (i.e., the relocation pose) and is faster.
[0111] Step S104, based on the map position information and the posture transformation value, determine the posture information of the object in the current frame and output it.
[0112] This embodiment receives an object positioning request, and then obtains the point cloud data corresponding to the pose of the object in the current frame, and divides the point cloud data to obtain the ground point cloud data of the current frame and the non-ground point cloud data of the current frame; obtains the map position information of the object corresponding to the object positioning request, and then calls the prior point cloud map to intercept the local point cloud map, and then determines the ground point cloud data of the local map and the non-ground point cloud data of the local map; performs multi-layer multi-resolution frame matching on the non-ground point cloud data of the current frame and the non-ground point cloud data of the local map, aligns the ground point cloud data of the current frame with the ground point cloud data of the local map, and determines the pose transformation value corresponding to the non-ground point cloud data and the ground point cloud data; determines the pose information of the object in the current frame based on the map position information and the pose transformation value, and outputs it. Lightweight storage can be achieved by only requiring the current frame and the prior global point cloud map and intercepting the local point cloud map, and the non-ground point cloud data is matched through a multi-layer multi-resolution frame matching algorithm to determine the pose transformation value corresponding to the non-ground point cloud data of the current frame, and retains the distribution information of the point cloud in height to a certain degree, thereby enhancing the robustness of repositioning.
[0113] Figure 2is a schematic diagram of the main flow of the object positioning method according to the second embodiment of the present application. Figure 2 As shown, the object positioning method includes:
[0114] Step S201, receiving an object positioning request, and then obtaining point cloud data corresponding to the object posture of the current frame, and segmenting the point cloud data to obtain ground point cloud data of the current frame and non-ground point cloud data of the current frame.
[0115] Step S202, obtaining the map location information of the object corresponding to the object positioning request, and then calling the prior point cloud map to intercept the local point cloud map, and then determining the local map ground point cloud data and the local map non-ground point cloud data.
[0116] The principles of step S201 to step S202 are similar to those of step S101 to step S102 and will not be described in detail here.
[0117] Specifically, step S202 can also be implemented through steps S2021 to S2023:
[0118] Step S2021, determining the maximum effective distance and search range of the laser device for acquiring point cloud data.
[0119] Step S2022, based on the effective distance (for example, the effective distance of the laser is 100m) and the search range (for example, the search range in the horizontal direction (ie, the x direction) is -50m to +50m), determine the interception range (for example, a range of -150m to +150m).
[0120] Step S2023, based on the interception range, intercept the local point cloud map from the prior point cloud map.
[0121] In this embodiment, the search range of the candidate poses can be specified, for example, the search range is set to be between -50 and +50 meters in the x direction and the y direction, and the yaw angle is between -180 degrees and +180 degrees.
[0122] The search range refers to the range of candidate poses searched in the non-ground point cloud data of the current frame. The size of the prior point cloud map intercepted in the horizontal direction is determined by the maximum effective distance of the laser and the size of the candidate pose search range. For example: the effective distance of the laser is 100m, and the search range in the horizontal direction (i.e., the x direction) is -50m to +50m. Then the local point cloud map is obtained by intercepting at least -150m to +150m in the prior point cloud map at the current position.
[0123] All valid point cloud data in the prior point cloud map data are intercepted at height. A local point cloud map is constructed based on the prior point cloud map data intercepted in the horizontal direction and the prior point cloud map data intercepted at height.
[0124] This embodiment can achieve faster and more accurate posture repositioning based on the intercepted local point cloud map by intercepting the local point cloud map according to the maximum effective distance and search range of the laser device on the prior point cloud map.
[0125] Step S203, performing multi-layer and multi-resolution frame matching on the non-ground point cloud data of the current frame and the non-ground point cloud data of the local map, aligning the ground point cloud data of the current frame with the ground point cloud data of the local map, and determining the posture transformation values corresponding to the non-ground point cloud data and the ground point cloud data.
[0126] Step S204, based on the map position information and the posture transformation value, determine the posture information of the object in the current frame and output it.
[0127] The principles of step S203 to step S204 are similar to those of step S103 to step S104 and will not be described in detail here.
[0128] The embodiment of the present application receives an object positioning request, and then obtains the point cloud data corresponding to the pose of the object in the current frame, and divides the point cloud data to obtain the ground point cloud data of the current frame and the non-ground point cloud data of the current frame; obtains the map position information of the object corresponding to the object positioning request, and then calls the prior point cloud map to intercept the local point cloud map, and then determines the ground point cloud data of the local map and the non-ground point cloud data of the local map; performs multi-layer multi-resolution frame matching on the non-ground point cloud data of the current frame and the non-ground point cloud data of the local map, aligns the ground point cloud data of the current frame with the ground point cloud data of the local map, and determines the pose transformation value corresponding to the non-ground point cloud data and the ground point cloud data; determines the pose information of the object in the current frame based on the map position information and the pose transformation value, and outputs it. Lightweight storage can be achieved by only requiring the current frame and the prior global point cloud map and intercepting the local point cloud map, and the non-ground point cloud data is passed through the multi-layer multi-resolution frame matching algorithm to determine the pose transformation value corresponding to the non-ground point cloud data of the current frame, retains the distribution information of the point cloud in height to a certain degree, and enhances the robustness of repositioning.
[0129] Figure 3 : is a schematic diagram of an application scenario of the object positioning method according to the third embodiment of the present application. The object positioning method of the embodiment of the present application can be applied to the global repositioning scenario of an unmanned vehicle. The object can be an unmanned vehicle, and the embodiment of the present application does not limit the specific content corresponding to the object. Figure 3As shown, the server 302 receives the object positioning request 301, and then obtains the point cloud data 303 corresponding to the current frame object posture, and divides the point cloud data 303 to obtain the current frame ground point cloud data 304 and the current frame non-ground point cloud data 305. The server 302 obtains the map position information 306 of the object corresponding to the object positioning request 301, and then calls the prior point cloud map 307 to intercept the local point cloud map 308, and then determines the local map ground point cloud data 310 and the local map non-ground point cloud data 309. The server 302 performs multi-layer multi-resolution frame matching on the current frame non-ground point cloud data 305 and the local map non-ground point cloud data 309, aligns the current frame ground point cloud data 304 with the local map ground point cloud data 310, and determines the posture transformation value 311 corresponding to the non-ground point cloud data and the posture transformation value 310 corresponding to the ground point cloud data. The server 302 determines the pose information 312 of the object in the current frame based on the map position information 306, the pose transformation value 311 corresponding to the non-ground point cloud data, and the pose transformation value 310 corresponding to the ground point cloud data, and outputs it.
[0130] Figure 4 Schematic diagram of the main units of the object positioning device according to an embodiment of the present application. Figure 4 As shown, the object positioning device includes a receiving unit 401, an intercepting unit 402, a posture transformation value determining unit 403 and a positioning unit 404.
[0131] The receiving unit 401 is configured to receive an object positioning request, and then obtain point cloud data corresponding to the object posture of the current frame, and segment the point cloud data to obtain ground point cloud data of the current frame and non-ground point cloud data of the current frame.
[0132] The interception unit 402 is configured to obtain the map position information of the object corresponding to the object positioning request, and then call the prior point cloud map to intercept the local point cloud map, and then determine the local map ground point cloud data and the local map non-ground point cloud data.
[0133] The pose transformation value determination unit 403 is configured to perform multi-layer and multi-resolution frame matching on the non-ground point cloud data of the current frame and the non-ground point cloud data of the local map, align the ground point cloud data of the current frame with the ground point cloud data of the local map, and determine the pose transformation values corresponding to the non-ground point cloud data and the ground point cloud data.
[0134] The positioning unit 404 is configured to determine the pose information of the object in the current frame based on the map position information and the pose transformation value, and output it.
[0135] In some embodiments, the interception unit 402 is further configured to: determine the maximum effective distance and search range of the laser device for acquiring point cloud data; determine the interception range based on the effective distance and search range; and intercept a local point cloud map from the prior point cloud map based on the interception range.
[0136] In some embodiments, the posture transformation value determination unit 403 is further configured to: construct a probability grid map of a preset number of layers based on the non-ground point cloud data of the local map; divide the non-ground point cloud data of the current frame into a preset number of layers, determine the candidate postures of the current frame, and then determine the probability value of each candidate posture in the probability grid map based on the non-ground point cloud data of the current frame divided into a preset number of layers and the probability grid map; determine the candidate posture priority queue based on the probability value; determine the posture transformation value corresponding to the non-ground point cloud data based on the candidate posture priority queue; perform spatial transformation on the ground point cloud data of the current frame to map it to the local map to obtain mapped point cloud data, and then determine the posture transformation value corresponding to the ground point cloud data based on the mapped point cloud data and the ground point cloud data of the local map.
[0137] In some embodiments, the posture transformation value determination unit 403 is further configured to: branch the probability grid map corresponding to the candidate posture priority queue to obtain a branch probability grid map; determine the branch probability value of each candidate posture in the probability grid map after branching based on each candidate posture and each branch probability grid map, and then determine the candidate posture priority queue of the branch according to the branch probability value; update the candidate posture priority queue based on the branch candidate posture priority queue, and then determine the candidate posture with the largest branch probability value based on the branch candidate posture priority queue, and then determine the posture transformation value of the non-ground point cloud data according to the candidate posture with the largest branch probability value.
[0138] In some embodiments, the pose transformation value determination unit 403 is further configured to: in response to determining that the branch candidate pose priority queue includes only one branch candidate pose, determine the branch candidate pose as the candidate pose with the largest branch probability value in the branch candidate pose priority queue.
[0139] In some embodiments, the object positioning device further includes Figure 4 The preprocessing unit not shown in the figure is configured to: update the height of each point in each layer of non-ground point cloud data of the current frame to the height of the corresponding layer.
[0140] In some embodiments, the posture transformation value determination unit 403 is further configured to: determine the layer probability value of each layer of non-ground point cloud data of the current frame corresponding to each candidate posture in the probability grid map of the corresponding layer; sum and average the probability values of each layer to obtain the probability value of each candidate posture in the probability grid map.
[0141] In some embodiments, the posture transformation value determination unit 403 is further configured to: determine a candidate posture search range, and then determine the number of candidate postures for the current frame based on a preset resolution; determine the candidate postures for the current frame based on the candidate posture search range and the number of candidate postures.
[0142] It should be noted that the object positioning method and the object positioning device of the present application have a corresponding relationship in terms of specific implementation contents, so the repeated contents will not be described again.
[0143] Figure 5 An exemplary system architecture 500 is shown to which the object positioning method or object positioning device according to the embodiments of the present application can be applied.
[0144] like Figure 5 As shown, system architecture 500 may include terminal devices 501, 502, 503, a network 504 and a server 505. Network 504 is used to provide a medium for communication links between terminal devices 501, 502, 503 and server 505. Network 504 may include various connection types, such as wired, wireless communication links or optical fiber cables, etc.
[0145] Users can use terminal devices 501, 502, 503 to interact with server 505 through network 504 to receive or send messages, etc. Various communication client applications can be installed on terminal devices 501, 502, 503, such as shopping applications, web browser applications, search applications, instant messaging tools, email clients, social platform software, etc. (only as examples).
[0146] The terminal devices 501 , 502 , and 503 may be various electronic devices having an object positioning processing screen and supporting web browsing, including but not limited to smart phones, tablet computers, laptop computers, desktop computers, and the like.
[0147] The server 505 may be a server that provides various services, such as a background management server that provides support for object positioning requests submitted by users using terminal devices 501, 502, and 503 (for example only). The background management server may receive an object positioning request, and then obtain point cloud data corresponding to the current frame object posture, and segment the point cloud data to obtain the current frame ground point cloud data and the current frame non-ground point cloud data; obtain the map location information of the object corresponding to the object positioning request, and then call the prior point cloud map to intercept the local point cloud map, and then determine the local map ground point cloud data and the local map non-ground point cloud data; perform multi-layer and multi-resolution frame matching on the current frame non-ground point cloud data and the local map non-ground point cloud data, align the current frame ground point cloud data with the local map ground point cloud data, and determine the posture transformation values corresponding to the non-ground point cloud data and the ground point cloud data; determine the posture information of the current frame object based on the map location information and the posture transformation value, and output it. Lightweight storage can be achieved by only requiring the current frame and the prior global point cloud map and by intercepting the local point cloud map. The non-ground point cloud data is passed through a multi-layer and multi-resolution frame matching algorithm to determine the pose transformation value corresponding to the non-ground point cloud data of the current frame. The distribution information of the point cloud in height is retained to a certain extent, thereby enhancing the repositioning robustness.
[0148] It should be noted that the object positioning method provided in the embodiment of the present application is generally executed by the server 505 , and accordingly, the object positioning device is generally disposed in the server 505 .
[0149] It should be understood that Figure 5 The number of terminal devices, networks and servers in the embodiment is only for illustration. Any number of terminal devices, networks and servers may be provided according to implementation requirements.
[0150] Reference below Figure 6 , which shows a schematic diagram of the structure of a computer system 600 of a terminal device suitable for implementing an embodiment of the present application. Figure 6 The terminal device shown is merely an example and should not bring any limitation to the functions and scope of use of the embodiments of the present application.
[0151] like Figure 6 As shown, the computer system 600 includes a central processing unit (CPU) 601, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 602 or a program loaded from a storage part 608 into a random access memory (RAM) 603. In the RAM 603, various programs and data required for the operation of the computer system 600 are also stored. The CPU 601, the ROM 602, and the RAM 603 are connected to each other via a bus 604. An input / output (I / O) interface 605 is also connected to the bus 604.
[0152] The following components are connected to the I / O interface 605: an input section 606 including a keyboard, a mouse, etc.; an output section 607 including a cathode ray tube (CRT), a liquid crystal display (LCD), etc., and a speaker, etc.; a storage section 608 including a hard disk, etc.; and a communication section 609 including a network interface card such as a LAN card, a modem, etc. The communication section 609 performs communication processing via a network such as the Internet. A drive 610 is also connected to the I / O interface 605 as needed. A removable medium 611, such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc., is installed on the drive 610 as needed, so that a computer program read therefrom is installed into the storage section 608 as needed.
[0153] In particular, according to the embodiments disclosed in the present application, the process described above with reference to the flowchart can be implemented as a computer software program. For example, the embodiments disclosed in the present application include a computer program product, which includes a computer program carried on a computer-readable medium, and the computer program includes a program code for executing the method shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from the network through the communication part 609, and / or installed from the removable medium 611. When the computer program is executed by the central processing unit (CPU) 601, the above-mentioned functions defined in the system of the present application are executed.
[0154] It should be noted that the computer-readable medium shown in the present application may be a computer-readable signal medium or a computer-readable storage medium or any combination of the above two. Computer-readable storage media may include, for example, but are not limited to electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices or devices, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, 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 above. In the present application, a computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in combination with an instruction execution system, device or device. In the present application, a computer-readable signal medium may include a data signal propagated in a baseband or as part of a carrier wave, in which a computer-readable program code is carried. This propagated data signal may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. Computer-readable signal media may also be any computer-readable medium other than computer-readable storage media, which may send, propagate or transmit a program for use by or in conjunction with an instruction execution system, apparatus or device. The program code contained on the computer-readable medium may be transmitted using any appropriate medium, including but not limited to: wireless, wire, optical cable, RF, etc., or any suitable combination of the above.
[0155] The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present application. In this regard, each box in the flow chart or block diagram can represent a module, a program segment or a part of a code, and the above-mentioned module, program segment or a part of a code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order from the order marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram or flow chart, and the combination of the boxes in the block diagram or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.
[0156] The units involved in the embodiments described in the present application may be implemented by software or hardware. The units described may also be set in a processor, for example, it may be described as: a processor includes a receiving unit, an interception unit, a posture transformation value determination unit and a positioning unit. The names of these units do not constitute limitations on the units themselves in some cases.
[0157] As another aspect, the present application also provides a computer-readable medium, which may be included in the device described in the above embodiment; or it may exist independently and not be assembled into the device. The above computer-readable medium carries one or more programs. When the above one or more programs are executed by a device, the device receives an object positioning request, obtains point cloud data corresponding to the current frame object posture, and divides the point cloud data to obtain the current frame ground point cloud data and the current frame non-ground point cloud data; obtains the map position information of the object corresponding to the object positioning request, and then calls the prior point cloud map to intercept the local point cloud map, and then determines the local map ground point cloud data and the local map non-ground point cloud data; performs multi-layer and multi-resolution frame matching on the current frame non-ground point cloud data and the local map non-ground point cloud data, aligns the current frame ground point cloud data with the local map ground point cloud data, and determines the posture transformation values corresponding to the non-ground point cloud data and the ground point cloud data; determines the posture information of the current frame object based on the map position information and the posture transformation value, and outputs it.
[0158] According to the technical solution of the embodiment of the present application, lightweight storage can be achieved by only requiring the current frame and the prior global point cloud map and by intercepting the local point cloud map. The non-ground point cloud data is passed through a multi-layer and multi-resolution frame matching algorithm to determine the pose transformation value corresponding to the non-ground point cloud data of the current frame. The distribution information of the point cloud in height is retained to a certain degree, thereby enhancing the repositioning robustness.
[0159] The above specific implementations do not constitute a limitation on the protection scope of this application. It should be understood by those skilled in the art that various modifications, combinations, sub-combinations and substitutions may occur depending on design requirements and other factors. Any modifications, equivalent substitutions and improvements made within the spirit and principles of this application should be included in the protection scope of this application.
Claims
1. A method for locating an object, characterized in that: include: Receive an object positioning request, obtain point cloud data corresponding to the object posture of the current frame, and segment the point cloud data to obtain ground point cloud data of the current frame and non-ground point cloud data of the current frame; Obtain the map location information of the object corresponding to the object positioning request, and then call the prior point cloud map to intercept the local point cloud map, and then determine the local map ground point cloud data and the local map non-ground point cloud data; Perform multi-layer and multi-resolution frame matching on the non-ground point cloud data of the current frame and the non-ground point cloud data of the local map, align the ground point cloud data of the current frame with the ground point cloud data of the local map, and determine the pose transformation values corresponding to the non-ground point cloud data and the ground point cloud data; update the height of each point in each layer of the non-ground point cloud data of the current frame to the height of the corresponding layer; Based on the map position information and the pose transformation value, the pose information of the object in the current frame is determined and output.
2. The method according to claim 1, characterized in that The calling of the prior point cloud map to intercept the local point cloud map includes: Determine the maximum effective distance and search range of the laser device for acquiring the point cloud data; Determine a capture range based on the effective distance and the search range; Based on the interception range, a local point cloud map is intercepted from the prior point cloud map.
3. The method according to claim 1, characterized in that The determining of the pose transformation values corresponding to the non-ground point cloud data and the ground point cloud data includes: Constructing a probability grid map of a preset number of layers according to the non-ground point cloud data of the local map; Dividing the non-ground point cloud data of the current frame into the preset number of layers, determining the candidate poses of the current frame, and then determining the probability value of each of the candidate poses in the probability grid map based on the non-ground point cloud data of the current frame divided into the preset number of layers and the probability grid map; Determine a priority queue of candidate poses according to the probability value; Based on the candidate pose priority queue, determining a pose transformation value corresponding to the non-ground point cloud data; The ground point cloud data of the current frame is spatially transformed to be mapped to the local map to obtain mapping point cloud data, and then the posture transformation value corresponding to the ground point cloud data is determined based on the mapping point cloud data and the ground point cloud data of the local map.
4. The method according to claim 3, characterized in that The determining, based on the candidate pose priority queue, a pose transformation value corresponding to the non-ground point cloud data comprises: Branching the probability grid map corresponding to the candidate posture priority queue to obtain a branch probability grid map; Based on each of the candidate postures and each of the branch probability grid maps, determine a branch probability value of each of the candidate postures in the probability grid map after branching, and then determine a candidate posture priority queue of the branch according to the branch probability value; The candidate pose priority queue is updated based on the branch, and then the candidate pose with the largest branch probability value is determined based on the branch candidate pose priority queue, and then the pose transformation value of the non-ground point cloud data is determined according to the candidate pose with the largest branch probability value.
5. The method according to claim 4, characterized in that The determining of the candidate pose with the maximum branch probability value based on the candidate pose priority queue of the branch includes: In response to determining that the branch candidate pose priority queue includes only one branch candidate pose, the branch candidate pose is determined to be the candidate pose with the largest branch probability value in the branch candidate pose priority queue.
6. The method according to claim 3, characterized in that The determining of the probability value of each of the candidate postures in the probability grid map includes: Determine the layer probability value of each layer of non-ground point cloud data of the current frame corresponding to each of the candidate poses in the probability grid map of the corresponding layer; The probability values of each layer are summed and averaged to obtain the probability value of each candidate posture in the probability grid map.
7. The method according to claim 3, characterized in that The determining of the candidate poses of the current frame includes: Determine a candidate pose search range, and then determine the number of candidate poses for the current frame based on a preset resolution; Based on the candidate pose search range and the number of candidate poses, determine the candidate poses of the current frame.
8. An object positioning device, characterized in that: include: A receiving unit is configured to receive an object positioning request, thereby obtaining point cloud data corresponding to the object posture of the current frame, and segmenting the point cloud data to obtain ground point cloud data of the current frame and non-ground point cloud data of the current frame; The interception unit is configured to obtain the map position information of the object corresponding to the object positioning request, and then call the prior point cloud map to intercept the local point cloud map, and then determine the local map ground point cloud data and the local map non-ground point cloud data; The pose transformation value determination unit is configured to perform multi-layer and multi-resolution frame matching on the non-ground point cloud data of the current frame and the non-ground point cloud data of the local map, align the ground point cloud data of the current frame with the ground point cloud data of the local map, determine the pose transformation value corresponding to the non-ground point cloud data and the ground point cloud data; update the height of each point in each layer of the non-ground point cloud data of the current frame to the height of the corresponding layer; The positioning unit is configured to determine the pose information of the object in the current frame based on the map position information and the pose transformation value, and output it.
9. The device according to claim 8, characterized in that The interception unit is further configured to: Determine the maximum effective distance and search range of the laser device for acquiring the point cloud data; Determine a capture range based on the effective distance and the search range; Based on the interception range, a local point cloud map is intercepted from the prior point cloud map.
10. An object positioning electronic device, characterized in that: include: one or more processors; a storage device for storing one or more programs, When the one or more programs are executed by the one or more processors, the one or more processors implement the method according to any one of claims 1 to 7.
11. A computer readable medium having a computer program stored thereon, characterized in that: When the program is executed by a processor, the method according to any one of claims 1 to 7 is implemented.
Citation Information
Patent Citations
Positioning method and device, electronic equipment and storage medium
CN113256712A