Point Cloud Data Processing Method, Apparatus, Device, Storage Medium and Program Product
By point matching and trajectory point matching for two trips of point cloud data, and mismatched point pairs are eliminated, the precise alignment of point cloud data is achieved, the problem of inaccurate point cloud alignment in the existing technology is solved, and the accuracy of high-precision maps is improved.
Patent Information
- Application Number
- CN202310341960.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-03-31
- Publication Date
- 2025-06-20
- Estimated Expiration
- 2043-03-31
AI Technical Summary
The existing point cloud alignment algorithms are difficult to accurately align point cloud data collected from different strokes, especially data from different surfaces of the same object, resulting in ghosting of map data.
By obtaining the two-way point cloud data to be matched, point matching and matching point pairs are obtained, and then matching points are matched with the track points in its corresponding driving trajectory data to determine whether the matching point is located between the two track points. If so, it is determined that the matching point pair is an incorrect match, and the wrong match point pair is eliminated to obtain the correct matching point pair, and then accurately align it.
Ensure accurate alignment of point cloud data, avoid ghosting, and improve the accuracy of high-precision maps.
Smart Images

Figure CN116363182B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the technical field of high-precision maps, and particularly relates to a method, apparatus, device, storage medium, and program product for processing point cloud data. Background Art
[0002] The production of high-precision maps depends on high-precision data. Currently, high-precision data is mainly collected by professional collection devices mounted on high-precision data collection vehicles. For example, in one (a single) collection process, the collection vehicle collects point cloud data through the lidar mounted thereon. At the same time, the driving trajectory data of the collection vehicle during driving is obtained through the positioning device mounted thereon. Based on these high-precision data such as the driving trajectory data, point cloud data, and other collection data, high-precision maps can be produced. When producing high-precision maps, for the same road, multiple collections are required, and the point cloud data collected in multiple trips needs to be stitched and fused, so that a complete and accurate high-precision map can be produced.
[0003] In order to ensure that there is no ghosting after the point cloud data collected in multiple trips is stitched and fused, it is necessary to align the point cloud data of different trips on the same road. Currently, the point cloud alignment algorithms mainly focus on the matching and alignment of point clouds on the same plane. However, the point cloud data collected in different trips may be different faces of the same object. For example, for the fence between the up and down roads, when the collection vehicle is driving on the up road, it collects the point cloud data of the left side of the fence, and when the collection vehicle is driving on the down road, it collects the point cloud data of the right side of the fence. If the existing point cloud matching algorithm is used for point cloud matching, there will be a problem of mis-matching the point cloud on the left side of the fence with the point cloud on the right side of the fence, which will result in inaccurate point cloud alignment and ghosting in the produced map data. Summary of the Invention
[0004] To solve the problems in the related art, embodiments of the present disclosure provide a method, apparatus, device, storage medium, and program product for processing point cloud data.
[0005] In a first aspect, embodiments of the present disclosure provide a method for processing point cloud data.
[0006] Specifically, the method for processing point cloud data includes:
[0007] Obtain two trips of point cloud data to be matched;
[0008] Perform point matching on the two trips of point cloud data to obtain multiple pairs of matching points in the two trips of point cloud data, where the pair of matching points includes two matching points respectively located in the two trips of point cloud data;
[0009] Match the matching points with the trajectory points in the driving trajectory data corresponding to the point cloud data where the matching points are located to obtain the trajectory points corresponding to the matching points;
[0010] If any one of the matching points in the pair of matching points is located between two trajectory points, determine that the pair of matching points is a false match, and the two trajectory points are the two trajectory points corresponding to the two matching points in the pair of matching points respectively;
[0011] Filter out the pairs of false-matched matching points among the multiple pairs of matching points to obtain correct pairs of matching points.
[0012] In a second aspect, an embodiment of the present disclosure provides a point cloud data processing device, including:
[0013] A first acquisition module configured to acquire two trips of point cloud data to be matched, where the point cloud data includes the acquisition time and point position of the point cloud;
[0014] A second acquisition module configured to perform point matching on the two trips of point cloud data to obtain multiple pairs of matching points in the two trips of point cloud data, where the pair of matching points includes two matching points respectively located in the two trips of point cloud data;
[0015] A third acquisition module configured to match the matching points with the trajectory points in the driving trajectory data corresponding to the point cloud data where the matching points are located to obtain the trajectory points corresponding to the matching points;
[0016] A determination module configured to determine that the pair of matching points is a false match if any one of the matching points in the pair of matching points is located between two trajectory points, and the two trajectory points are the two trajectory points corresponding to the two matching points in the pair of matching points respectively;
[0017] A filtering module configured to filter out the pairs of false-matched matching points among the multiple pairs of matching points to obtain correct pairs of matching points.
[0018] In a third aspect, an embodiment of the present disclosure provides an electronic device, including a memory and a processor, where the memory is used to store one or more computer instructions, and the one or more computer instructions are executed by the processor to implement the method according to any one of the first aspects.
[0019] In a fourth aspect, an embodiment of the present disclosure provides a computer-readable storage medium, on which computer instructions are stored, and when the computer instructions are executed by a processor, the method according to any one of the first aspects is implemented.
[0020] In a fifth aspect, an embodiment of the present disclosure provides a computer program product, including computer instructions, and when the computer instructions are executed by a processor, the method steps according to any one of the first aspects are implemented.
[0021] In a sixth aspect, an embodiment of the present disclosure provides a navigation method. In this method, a navigation route is obtained based on an electronic map, which is calculated at least based on a starting point, an ending point, and road conditions, and the carrier is navigated and guided based on the navigation route. The electronic map is generated based on the point cloud data aligned by any one of the methods in the first aspect.
[0022] According to the technical solution provided by the embodiment of the present disclosure, after obtaining two sets of point cloud data to be matched, the two sets of point cloud data can be point-matched to obtain a plurality of matching point pairs in the two sets of point cloud data. Then, the matching points are matched with the trajectory points in the trajectory data corresponding to the point cloud data where the matching points are located to obtain the trajectory points corresponding to the matching points. Further, two trajectory points corresponding to the two matching points in the matching point pair are obtained. If any one of the matching points in the matching point pair is located between the two trajectory points, it indicates that the object where the matching point pair is located is between the driving trajectories of the two collection vehicles during the two collections. This matching point pair may be points of the same object on different surfaces. At this time, it can be determined that the matching point pair is a false match. The plurality of matching point pairs in the two sets of point cloud data can be traversed, and the false-matched matching point pairs are removed from the plurality of matching point pairs to obtain correct matching point pairs. Since the false-matched matching point pairs are removed, the two sets of point cloud data can be accurately aligned based on the correct matching point pairs, ensuring that there is no ghosting after the alignment between the two sets of point cloud data, thereby improving the accuracy of the high-precision map.
[0023] It should be understood that the above general description and the following detailed description are only exemplary and explanatory, and cannot limit the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0024] In conjunction with the drawings, through the following detailed description of non-limiting embodiments, other features, objects, and advantages of the present disclosure will become more apparent. In the drawings:
[0025] Figure 1 A flowchart showing a method for processing point cloud data according to an embodiment of the present disclosure;
[0026] Figure 2 A schematic diagram showing different road surfaces according to an embodiment of the present disclosure;
[0027] Figure 3 A schematic diagram showing an application in a navigation application scenario according to an embodiment of the present disclosure;
[0028] Figure 4 A block diagram showing the structure of a point cloud data processing device according to an embodiment of the present disclosure;
[0029] Figure 5 A block diagram showing the structure of an electronic device according to an embodiment of the present disclosure;
[0030] Figure 6 A schematic structural diagram showing a computer system suitable for implementing the method according to an embodiment of the present disclosure. Detailed implementation manners
[0031] Hereinafter, exemplary embodiments of the present disclosure will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily implement them. In addition, for the sake of clarity, parts irrelevant to the description of the exemplary embodiments are omitted in the drawings.
[0032] In the present disclosure, it should be understood that terms such as "including" or "having" are intended to indicate the presence of features, numbers, steps, actions, components, parts, or combinations thereof disclosed in this specification, and are not intended to exclude the possibility of the presence or addition of one or more other features, numbers, steps, actions, components, parts, or combinations thereof.
[0033] In addition, it should be noted that, without conflict, the embodiments in the present disclosure and the features in the embodiments can be combined with each other. The present disclosure will be described in detail below with reference to the accompanying drawings and in combination with the embodiments.
[0034] In the present disclosure, the acquisition of user information or user data is an operation that is authorized, confirmed by the user, or actively selected by the user.
[0035] As described above, in order to ensure that there is no ghosting after the point cloud data collected in multiple trips are stitched and fused, it is necessary to align the point cloud data of different trips on the same road. The current point cloud alignment algorithms mainly focus on the matching and alignment of point clouds on the same plane. However, the point cloud data collected in different trips may be different sides of the same object. For example, for the fence between the up and down roads, when the acquisition vehicle travels on the up road, the point cloud data of the left side of the fence is collected, and when the acquisition vehicle travels on the down road, the point cloud data of the right side of the fence is collected. If the existing point cloud matching algorithm is used for point cloud matching, there will be a problem of mis-matching the point cloud on the left side of the fence with the point cloud on the right side of the fence. This will result in inaccurate point cloud alignment and ghosting in the produced map data.
[0036] The present disclosure provides a method for processing point cloud data. This method can, according to the driving trajectory data of the acquisition vehicle, eliminate the incorrect matching point pairs that are respectively located on two sides of the same object in the matching point pairs of two trips of point cloud data to be matched, obtain the correct matching point pairs, and accurately align the two trips of point cloud data based on the correct matching point pairs to ensure that there is no ghosting after the alignment between the two trips of point cloud data, thereby improving the accuracy of the high-precision map.
[0037] Figure 1 A flowchart showing the method for processing point cloud data according to an embodiment of the present disclosure. As Figure 1As shown, the point cloud data processing method includes the following steps S101 - S105:
[0038] In step S101, obtain two runs of point cloud data to be matched;
[0039] In step S102, perform point matching on the two runs of point cloud data to obtain multiple pairs of matching points in the two runs of point cloud data, where the pair of matching points includes two matching points located in the two runs of point cloud data respectively;
[0040] In step S103, match the matching points with the trajectory points in the driving trajectory data corresponding to the point cloud data where the matching points are located to obtain the trajectory points matched by the matching points;
[0041] In step S104, if any one of the matching points in the pair of matching points is located between two trajectory points, determine that the pair of matching points is a false match, and the two trajectory points are the two trajectory points respectively matched with the two matching points in the pair of matching points;
[0042] In step S105, filter out the pairs of false - matched points in the multiple pairs of matching points to obtain the correct pairs of matching points.
[0043] In a possible implementation, this point cloud data processing method is applicable to devices such as computers, computing devices, servers, server clusters, etc. that can perform point cloud data processing.
[0044] In a possible implementation, a point cloud is a set of points, which can be obtained by scanning with a lidar mounted on a collection vehicle. When a laser beam irradiates the surface of an object, reflection occurs on the object surface, and a large number of laser points can be collected through reflection to form a point cloud. The point cloud data can include the collection time of the point cloud, the position information of the point cloud, or can also include the laser reflection intensity information of the point cloud, etc.
[0045] In a possible implementation, for the same road area, there may be more than one run of point cloud data. Such multiple runs of point cloud data may be collected by the same collection vehicle when driving through this road area at different times, or by different collection vehicles at the same or different times in this road area. If there is point cloud corresponding to the same area in two runs of point cloud data, then these two runs of point cloud data need to be aligned at the same area, and after alignment, these two runs of point cloud data can be stitched and fused based on this same area. Hereinafter, two runs of point cloud data with point cloud in the same area can be referred to as two runs of point cloud data to be matched, and these two runs of point cloud data can be denoted as P1 and P2.
[0046] In a possible implementation, a point cloud matching algorithm can be used to perform point matching on two sets of point cloud data to be matched, and obtain multiple matching point pairs in the two sets of point cloud data. Each matching point pair includes two matching points, which are respectively located in the two sets of point cloud data. Exemplarily, the point cloud matching algorithm can be the ICP (Iterative Closest Point) algorithm. Using the ICP algorithm, the closest points of point cloud P1 can be found in point cloud P2 to form n matching point pairs p1, p2, ……, pn, where the i-th matching point pair includes the matching point pi_s located in point cloud P1 and the matching point pi_t located in point cloud P2.
[0047] In a possible implementation, when the acquisition vehicle performs one acquisition, it can simultaneously acquire point cloud data and driving trajectory data. The driving trajectory data corresponding to the point cloud data for the same acquisition is the driving trajectory data corresponding to the point cloud data. The point cloud data is a set of a large number of points, and the driving trajectory is a set of multiple trajectory points. The driving trajectory data includes the acquisition time of each trajectory point, the position information of the trajectory point, the movement direction information of the trajectory point, the speed information of the trajectory point, etc.; one trajectory point in the driving trajectory data corresponds to a large number of points in the point cloud data. The matching points in the point cloud data can be matched with the trajectory points in the trajectory data to determine the corresponding relationship between the matching points and the trajectory points, and obtain the trajectory points corresponding to each matching point.
[0048] In a possible implementation, for each matching point pair, the matching point pair includes two matching points, and the two matching points respectively correspond to two trajectory points in two sets of driving trajectory data. If any one of the two matching points in the matching point pair is located between the two trajectory points, it indicates that the object where the matching point pair is located is between the driving trajectories of the acquisition vehicles for the two acquisitions. This pair of matching point pairs is collected by two different acquisition vehicles from two different directions, or by the same acquisition vehicle from two different directions. It may be points of the same object on different surfaces. At this time, it can be determined that this matching point pair is a false match.
[0049] In a possible implementation, multiple matching point pairs in the two sets of point cloud data can be traversed, and the mis-matched matching point pairs in the multiple matching point pairs can be filtered out to obtain correct matching point pairs. Then, based on the correct matching point pairs, the two sets of point cloud data can be aligned. For example, the correct relative pose relationship between the two sets of point cloud data can be calculated according to the correct matching point pairs. According to this correct relative pose relationship, the two sets of point cloud data can be accurately aligned.
[0050] After obtaining two runs of point cloud data to be matched, this embodiment can perform point matching on the two runs of point cloud data to obtain multiple matching point pairs in the two runs of point cloud data. Then, the matching points are matched with the trajectory points in the trajectory data corresponding to the point cloud data where the matching points are located, so as to obtain the trajectory points corresponding to the matching points. Furthermore, two trajectory points corresponding to the two matching points in the matching point pair are obtained. If any matching point in the matching point pair is located between the two trajectory points, it indicates that the object where the matching point pair is located is between the driving trajectories of the two collection vehicles during the two collections. This matching point pair may be points of the same object on different surfaces. At this time, it can be determined that the matching point pair is a false match. The multiple matching point pairs in the two runs of point cloud data can be traversed, and the false-matched matching point pairs are removed from the multiple matching point pairs to obtain the correct matching point pairs. According to the correct matching point pairs. Since the false-matched matching point pairs are removed, the two runs of point cloud data can be accurately aligned based on the correct matching point pairs, ensuring that there is no ghosting after the alignment between the two runs of point cloud data, thereby improving the accuracy of the high-precision map.
[0051] In a possible implementation manner, the matching point and the trajectory point are points in the same three-dimensional coordinate system; the determining that the matching point pair is a false match if any matching point in the matching point pair is located between the two trajectory points includes:
[0052] If the matching point is located between the two trajectory points in any one-dimensional coordinate axis direction of the three-dimensional coordinate system, it is determined that the matching point is located between the two trajectory points;
[0053] If any matching point in the matching point pair is located between the two trajectory points, it is determined that the matching point pair is a false match.
[0054] In this embodiment, the matching point and the trajectory point can be placed in the same three-dimensional coordinate system. Assuming that the matching point pi_s in the i-th matching point pair corresponds to the trajectory point c_s, and the matching point pi_t corresponds to the trajectory point c_t, the coordinate position of the matching point pi_s in the three-dimensional coordinate system can be denoted as (pi_s x , pi_s y , pi_s z ), the coordinate position of the matching point pi_t in the three-dimensional coordinate system is (pi_t x , pi_t y , pi_t z ), the coordinate position of the trajectory point c_s in the three-dimensional coordinate system is (c_s x , c_s y , c_s z ), and the coordinate position of the trajectory point c_t in the three-dimensional coordinate system is (c_t x , c_t y, c_t z ). For the matching point pi_s, if pi_s x is between c_s x and c_t x , that is, min(c_s x , c_t x ) ≤ pi_s x ≤ max(c_s x , c_t x ), it indicates that the matching point pi_s is located between the two trajectory points in the x-axis direction. If pi_s y is between c_s y and c_t y , that is, min(c_s y , c_t y ) ≤ pi_s y ≤ max(c_s y , c_t y ), it indicates that the matching point pi_s is located between the two trajectory points in the y-axis direction. If pi_s z is between c_s z and c_t z , that is, min(c_s z , c_t z ) ≤ pi_s z ≤ max(c_s z , c_t z ), it indicates that the matching point pi_s is located between the two trajectory points in the z-axis direction. For the matching point pi_t, if pi_t x is between c_s x and c_t x , that is, min(c_s x , c_t x ) ≤ pi_t x ≤ max(c_s x , c_t x ), it indicates that the matching point pi_t is located between the two trajectory points in the x-axis direction. If pi_t y is between c_s y and c_t y , that is, min(c_s y , c_t y ) ≤ pi_t y ≤ max(c_s y , c_t y ), it indicates that the matching point pi_t is located between the two trajectory points in the y-axis direction. If pi_t z is between c_s z and c_t zbetween, i.e., min(c_s z , c_t z ) ≤ pi_t z ≤ max(c_s z , c_t z ), it indicates that the matching point pi_t is located between the two trajectory points in the z-axis direction.
[0055] In this embodiment, if one of the matching points in the matching point pair is located between the two trajectory points in any one of the coordinate axes of the three-dimensional coordinate system, the matching point pair can be directly determined as a false match. Specifically, as long as the following conditions are met, the matching point pair pi can be determined as a false match:
[0056] pi_s is located between the two trajectory points, i.e., min(c_s x , c_t x ) ≤ pi_s x ≤ max(c_s x , c_t x ) || min(c_s y , c_t y ) ≤ pi_s y ≤ max(c_s y , c_t y ) || min(c_s z , c_t z ) ≤ pi_s z ≤ max(c_s z , c_t z );
[0057] Or, pi_t is located between the two trajectory points, i.e., min(c_s x , c_t x ) ≤ pi_t x ≤ max(c_s x , c_t x ) || min(c_s y , c_t y ) ≤ pi_t y ≤ max(c_s y , c_t y ) || min(c_s z , c_t z ) ≤ pi_t z ≤ max(c_s z , c_t z ).
[0058] This embodiment uses the positions of the trajectory points in the driving trajectory data to judge false matches, with fast calculation speed and high accuracy.
[0059] In a possible implementation manner, in the above point cloud data processing method, the obtaining of two runs of point cloud data to be matched includes:
[0060] According to the position information of the trajectory points in the two runs of driving trajectory data, determine whether the two runs of point cloud data corresponding to the two runs of driving trajectory data overlap;
[0061] If the two runs of point cloud data corresponding to the two runs of driving trajectory data overlap, determine the two runs of point cloud data corresponding to the two runs of driving trajectory data as the two runs of point cloud data to be matched.
[0062] In this implementation manner, if the driving trajectories in the two acquisitions are close to each other, then the lidar will scan the point cloud data of the same road area during the two acquisitions, and the two runs of point cloud data corresponding to the two runs of driving trajectory data are the two runs of point cloud data to be matched and need to be aligned and then stitched and fused.
[0063] In this embodiment, based on the position information of the trajectory points in the two sets of driving trajectory data, it can be determined whether the two sets of point cloud data collected when the acquisition vehicle travels according to the position information of the trajectory points overlap. If it is determined that the two sets of point cloud data corresponding to the two sets of driving trajectory data overlap, then it can be determined that the two sets of point cloud data corresponding to the two sets of driving trajectory data are two sets of point cloud data to be matched. For example, a predetermined distance can be set, and this predetermined distance can define the minimum acquisition position interval when two sets of point cloud data overlap. If the interval distance between two trajectory points is less than this predetermined distance, it indicates that the point cloud data collected at these two trajectory points overlap. Assume that in the two sets of driving trajectory data, one set of driving trajectory data includes multiple first trajectory points, and the other set of driving trajectory data includes multiple second trajectory points. For the first first trajectory point a1 at the start of one set of driving trajectory, multiple second trajectory points with an interval distance less than the predetermined distance from this first trajectory point a1 can be searched for among the second trajectory points, and multiple first trajectory points with an interval distance less than the predetermined distance from this first trajectory point a1 can be searched for among the first trajectory points. The trajectory points in these two sets of driving trajectory data with an interval distance less than the predetermined distance from the first trajectory point a1 are matching trajectory points. Then, the first first trajectory point a2 with an interval distance exceeding the predetermined distance from this first trajectory point a1 is obtained, and for the first trajectory point a2, the trajectory points in these two sets of driving trajectory data with an interval distance less than the predetermined distance from the first trajectory point a2 are obtained as matching trajectory points, and so on. In this way, it can be determined that the two sets of point cloud data corresponding to the matching trajectory points in these two sets of driving trajectory data overlap. Of course, based on the position information of the trajectory points in the two sets of driving trajectory data, when it is determined that the interval distances between the corresponding trajectory points in the two sets of driving trajectory data are all less than the predetermined distance, it can be determined that the two sets of point cloud data corresponding to the two sets of driving trajectory data overlap. It should be noted here that there are many ways to determine whether two sets of point cloud data overlap, and they will not be listed one by one here.
[0064] In this embodiment, this predetermined distance can be determined according to the scanning range of the lidar. For example, assume that the scanning range of the lidar is 100m, then this predetermined distance can be set to be less than 100m, such as 60m, etc.
[0065] In a possible embodiment, in the above point cloud data processing method, the step of if the two sets of point cloud data corresponding to the two sets of driving trajectory data overlap, then determining that the two sets of point cloud data corresponding to the two sets of driving trajectory data are two sets of point cloud data to be matched includes:
[0066] If the two sets of point cloud data corresponding to the two sets of driving trajectory data overlap, and the two sets of driving trajectory data are respectively driving trajectory data on different road surfaces, then determine that the two sets of point cloud data corresponding to the two sets of driving trajectory data are two sets of point cloud data to be matched.
[0067] In this embodiment, generally, when aligning the point cloud data collected on different road surfaces, incorrect matching is likely to occur. Therefore, when the distance between the corresponding trajectory points in two sets of driving trajectory data is less than a predetermined distance, and the two sets of driving trajectory data are respectively the driving trajectory data on different road surfaces, it is determined that the two sets of point cloud data corresponding to the two sets of driving trajectory data are two sets of point cloud data to be matched, and the point cloud data alignment method provided in this embodiment is performed.
[0068] In this embodiment, the road surface information to which the driving trajectory data belongs can be input by the collector when collecting data with the collection vehicle.
[0069] In this embodiment, the scenarios where adjacent driving trajectories are respectively located on different road surfaces mainly include various road scenarios such as up and down roads, main and auxiliary roads, roads on and under bridges, etc. For example, Figure 2 A schematic diagram of different road surfaces according to an embodiment of the present disclosure is shown. As Figure 2 In the shown two-way main and auxiliary road scenario, the upward auxiliary road surface A, the upward main road surface B, the downward main road surface C, and the downward auxiliary road surface D are all different road surfaces. Suppose one set of driving trajectory data is the driving trajectory data collected when the collection vehicle is driving on the upward auxiliary road surface A, and the other set of driving trajectory data is the driving trajectory data collected when the collection vehicle is driving on the upward main road surface B. There is a road barrier between the upward auxiliary road surface A and the upward main road surface B. Then, the point cloud data corresponding to these two sets of driving trajectory data will respectively include the point cloud on both sides of the road barrier. Of course, these two sets of point cloud data also include the point cloud of the same road area. At this time, the two sets of point cloud data corresponding to these two sets of driving trajectory data can be determined as two sets of point cloud data to be matched; suppose one set of driving trajectory data is the driving trajectory data collected when the collection vehicle is driving on the upward main road surface B, and the other set of driving trajectory data is the driving trajectory data collected when the collection vehicle is driving on the downward main road surface C. There is a road barrier between the downward main road surface C and the upward main road surface B. Then, the point cloud data corresponding to these two sets of driving trajectory data will respectively include the point cloud on both sides of the road barrier. Of course, these two sets of point cloud data also include the point cloud of the same road area. At this time, the two sets of point cloud data corresponding to these two sets of driving trajectory data can be determined as two sets of point cloud data to be matched. This embodiment can eliminate the matching point pairs corresponding to the matching points located in the middle of the corresponding trajectory points in the two sets of point cloud data to be matched, obtain the correct matching point pairs, and then perform the alignment of the two sets of point cloud data.
[0070] In a possible implementation manner, the matching the matching point with the trajectory point in the driving trajectory data corresponding to the point cloud data where the matching point is located to obtain the trajectory point matched by the matching point includes:
[0071] Compare the collection time of the matching point with the collection time of the trajectory point in the driving trajectory data, and determine the trajectory point in the driving trajectory data with the smallest collection time difference with the matching point as the trajectory point corresponding to the matching point.
[0072] In this embodiment, the points in the point cloud data and the track points in the driving track data are all corresponding to the collection time, and in the same collection process, each point in the point cloud data can correspond to a track point, so the point in the point cloud data can be matched with the track points in the track data by comparing the collection time. From the collection time of the track point in the driving track data corresponding to the point cloud data where the matching point is located, the track point with the closest time distance to the collection time of the matching point can be queried, and the track point is determined as the track point corresponding to the matching point.
[0073] Of course, in other implementations, the trajectory point closest to the matching point in the driving trajectory data corresponding to the point cloud data where the matching point is located may also be determined as the trajectory point corresponding to the matching point.
[0074] The disclosed embodiment also discloses a navigation service, wherein an electronic map is produced based on the point cloud data aligned by the above point cloud data processing method, and a navigation guidance service of a corresponding scene is provided for the carrier. The corresponding scene is a combination of one or more of AR navigation, elevated navigation, or main and auxiliary road navigation.
[0075] The disclosed embodiment also discloses a navigation method, wherein a navigation route calculated at least based on a starting point, an end point and road conditions is obtained based on an electronic map, and navigation guidance is performed on the carrier based on the navigation route, and the electronic map is generated based on point cloud data matched by any one of the above methods.
[0076] Figure 3 FIG. 1 shows an application schematic diagram of an embodiment of the present disclosure in a navigation application scenario. Figure 3 As shown, the collection vehicle 301 collects point cloud data and driving track data during a collection process. The map making server 302 can obtain the point cloud data and driving track data collected by multiple collection vehicles 301, and use the above-mentioned point cloud data processing method to obtain the correct matching point pairs in the point cloud data to be matched. According to the correct matching point pairs, the point cloud data can be correctly aligned, and the map can be made based on the aligned point cloud data to produce an electronic map. The map making server 302 can provide the produced electronic map to the navigation server 303. The navigation server 303 can provide navigation data to the location service terminal 304 for navigation, path planning and other services based on the disciple map.
[0077] For example, the point cloud data processing method may include the following steps:
[0078] Step 1: Load the point clouds P1 and P2 newly collected on two non - continuous road surfaces, as well as the vehicle trajectories C1 and C2 when the point clouds are collected. The road surface information of the newly collected point clouds can be obtained during the collection process. Non - continuous road surfaces refer to the situation where there are fences or other obstacles between the two road surfaces. For example, as Figure 2 shown, there are fence obstacles between the upward access road surface A, the upward main road surface B, the downward main road surface C, and the downward access road surface D, and they are all non - continuous road surfaces with respect to each other.
[0079] Step 2: According to the ICP algorithm, find the nearest points of the point cloud P1 in the point cloud P2 to form n pairs of matching points p1, p2, ……, pn. The i - th pair of matching points includes the matching point pi_s in the point cloud P1 and the matching point pi_t in the point cloud P2;
[0080] Step 3: Traverse the pairs of matching points. According to the acquisition times of pi_s and pi_t in each pair of matching points, find the trajectory point c_s closest to the acquisition time of pi_s in the corresponding trajectory C1, and find the trajectory point c_t closest to the acquisition time of pi_t in the trajectory C2. Check whether pi_s and pi_t are between c_s and c_t. If one of pi_s and pi_t is between c_s and c_t, it is a false match; otherwise, it is a correct match. Among them, to determine whether pi_s and pi_t are between c_s and c_t, the following formula can be referred to:
[0081] If min(c_sx, c_tx) ≤ pi_sx ≤ max(c_sx, c_tx) || min(c_sy, c_ty) ≤ pi_sy ≤ max(c_sy, c_ty) || min(c_sz, c_tz) ≤ pi_sz ≤ max(c_sz, c_tz), then pi_s is between c_s and c_t; otherwise, pi_s is not between c_s and c_t;
[0082] If min(c_s x , c_t x ) ≤ pi_t x ≤ max(c_s x , c_t x ) || min(c_s y , c_t y ) ≤ pi_t y ≤ max(c_s y , c_t y ) || min(c_s z , c_t z ) ≤ pi_t z ≤ max(c_s z , c_tz ) Then pi_t is located between c_s and c_t; otherwise, pi_t is not located between c_s and c_t;
[0083] Wherein, the coordinate position of the matching point pi_s in the three-dimensional coordinate system is (pi_s x , pi_s y , pi_s z ), the coordinate position of the matching point pi_t in the three-dimensional coordinate system is (pi_t x , pi_t y , pi_t z ), the coordinate position of the trajectory point c_s in the three-dimensional coordinate system is (c_s x , c_s y , c_s z ), and the coordinate position of the trajectory point c_t in the three-dimensional coordinate system is (c_t x , c_t y , c_t z );
[0084] Step 4: Through the check in Step 3, filter out the mismatched matching point pairs among the multiple matching point pairs to obtain the correct matching point pairs. Then, according to the correct matching point pairs, calculate the relative pose change between the two sets of point cloud data. According to this relative pose change, the two sets of point cloud data can be aligned.
[0085] In this embodiment, when aligning the newly acquired non - same - road surface point cloud data, based on the trajectory information collected by the vehicle, the ICP mismatched point pairs can be removed, so as to obtain the correct matching point pairs, calculate the correct relative position relationship between the newly acquired point clouds, and then correctly align the two sets of point cloud data. It can solve the problem of point cloud mismatching on non - same road surfaces such as going up and down, on and under the bridge, etc., improve the quality of point cloud alignment and the accuracy of the high - precision map, and at the same time improve the automation rate of the production line. Moreover, by using the trajectory information of the acquisition vehicle for matching, the calculation speed is fast and the accuracy is high.
[0086] Figure 4 The structural block diagram of a point cloud data processing device according to an embodiment of the present disclosure is shown. Among them, the device can be implemented as part or all of an electronic device through software, hardware, or a combination of both. As Figure 4 shown, the point cloud data processing device includes:
[0087] A first acquisition module 401, configured to acquire two sets of point cloud data to be matched, where the point cloud data includes the acquisition time and point position of the point cloud;
[0088] A second acquisition module 402, configured to perform point matching on the two trips of point cloud data, and acquire a plurality of matching point pairs in the two trips of point cloud data, where the matching point pairs include two matching points respectively located in the two trips of point cloud data;
[0089] A third acquisition module 403, configured to match the matching points with the trajectory points in the driving trajectory data corresponding to the point cloud data where the matching points are located, to obtain the trajectory points corresponding to the matching points;
[0090] A determination module 404, configured to determine that the matching point pair is a mis-match if any one of the matching points in the matching point pair is located between two trajectory points, where the two trajectory points are two trajectory points corresponding to the two matching points in the matching point pair respectively;
[0091] A filtering module 405, configured to filter out the mis-matched matching point pairs in the plurality of matching point pairs to obtain correct matching point pairs.
[0092] In a possible implementation manner, the matching points and the trajectory points are points in the same three-dimensional coordinate system; the determination module is configured to:
[0093] If the matching point is located between the two trajectory points in any one-dimensional coordinate axis direction in the three-dimensional coordinate system, it is determined that the matching point is located between the two trajectory points;
[0094] If any one of the matching points in the matching point pair is located between the two trajectory points, it is determined that the matching point pair is a mis-match.
[0095] In a possible implementation manner, the first acquisition module is configured to:
[0096] If the interval distance between the corresponding trajectory points of the two trips of driving trajectory data is less than a predetermined distance, it is determined that the two trips of point cloud data corresponding to the two trips of driving trajectory data are two trips of point cloud data to be matched.
[0097] In a possible implementation manner, in the first acquisition module, if the interval distance between the corresponding trajectory points of the two trips of driving trajectory data is less than a predetermined distance, determining that the two trips of point cloud data corresponding to the two trips of driving trajectory data are two trips of point cloud data to be matched includes:
[0098] If the interval distance between the corresponding trajectory points of the two trips of driving trajectory data is less than a predetermined distance, and the two trips of driving trajectory data are respectively driving trajectory data on different road surfaces, it is determined that the two trips of point cloud data corresponding to the two trips of driving trajectory data are two trips of point cloud data to be matched.
[0099] In a possible implementation manner, the second acquisition module is configured to:
[0100] Compare the acquisition time of the matching points with the acquisition time of the trajectory points in the driving trajectory data, and determine the trajectory point in the driving trajectory data with the smallest time difference from the acquisition time of the matching points as the trajectory point corresponding to the matching points.
[0101] The technical terms and technical features mentioned in the embodiments of this device are the same or similar. For the explanations and descriptions of the technical terms and technical features involved in this device, reference can be made to the explanations and descriptions of the above method embodiments, which will not be elaborated here.
[0102] This disclosure also discloses an electronic device. Figure 5 The block diagram of the electronic device according to an embodiment of the present disclosure is shown.
[0103] As Figure 5 shown, the electronic device 500 includes a memory 501 and a processor 502. Among them, the memory 501 is used to store one or more computer instructions, and the one or more computer instructions are executed by the processor 502 to implement the method according to the embodiments of the present disclosure.
[0104] Figure 6 The structural schematic diagram of a computer system suitable for implementing the method according to the embodiments of the present disclosure is shown.
[0105] As Figure 6 shown, the computer system 600 includes a processing unit 601, which can execute various processes in the above embodiments according to the program stored in the read-only memory (ROM) 602 or the program loaded from the storage section 608 into the 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 processing unit 601, the ROM 602, and the RAM 603 are connected to each other through a bus 604. The input / output (I / O) interface 605 is also connected to the bus 604.
[0106] 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. as well as 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 required. 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 required so that a computer program read out therefrom can be installed into the storage section 608 as required. Among them, the processing unit 601 can be implemented as a processing unit such as a CPU, a GPU, a TPU, an FPGA, an NPU, etc.
[0107] Specifically, according to an embodiment of the present disclosure, the method described above can be implemented as a computer software program. For example, an embodiment of the present disclosure includes a computer program product, which includes computer instructions that, when executed by a processor, implement the method steps described above. In such an embodiment, the computer program product can be downloaded and installed from a network through the communication section 609, and / or installed from the removable medium 611.
[0108] The flowcharts and block diagrams in the accompanying drawings illustrate the possible architectures, functions, and operations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagram may represent a module, a program segment, or a part of code, and the part of the module, the program segment, or the code contains one or more executable instructions for implementing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the blocks may occur in a different order from that marked in the accompanying drawings. For example, two consecutive blocks shown may actually be executed substantially in parallel, and they may sometimes be executed in the reverse order, depending on the functions involved. It should also be noted that each block in the block diagram and / or flowchart, and the combination of blocks in the block diagram and / or flowchart, can be implemented by a dedicated hardware-based system that performs the specified functions or operations, or can be implemented by a combination of dedicated hardware and computer instructions.
[0109] The units or modules involved in the embodiments described in the present disclosure can be implemented in software or in a programmable hardware manner. The described units or modules can also be provided in a processor, and the names of these units or modules do not constitute a limitation to the units or modules themselves in some cases.
[0110] As another aspect, the present disclosure also provides a computer-readable storage medium, which may be the computer-readable storage medium included in the electronic device or computer system in the above embodiments; or it may exist alone and be a computer-readable storage medium not assembled into the device. The computer-readable storage medium stores one or more programs, and the one or more programs are used by one or more processors to execute the methods described in the present disclosure.
[0111] The above description is only a preferred embodiment of the present disclosure and an explanation of the applied technical principles. Those skilled in the art should understand that the scope of the invention involved in the present disclosure is not limited to the technical solutions formed by the specific combination of the above technical features, and should also cover other technical solutions formed by any combination of the above technical features or their equivalent features without departing from the inventive concept. For example, the technical solutions formed by mutually replacing the above features with the technical features (but not limited to) having similar functions disclosed in the present disclosure.
Claims
1. A method for processing point cloud data, comprising: Obtain two sets of point cloud data to be matched; Perform point matching on the two sets of point cloud data to obtain multiple matching point pairs in the two sets of point cloud data, where the matching point pair includes two matching points respectively located in the two sets of point cloud data; Match the matching points with the trajectory points in the driving trajectory data corresponding to the point cloud data where the matching points are located to obtain the trajectory points corresponding to the matching points; If any one of the matching points in the matching point pair is located between two trajectory points, determine that the matching point pair is a false match, and the two trajectory points are the two trajectory points corresponding to the two matching points in the matching point pair respectively; Filter out the false-matched matching point pairs in the multiple matching point pairs to obtain correct matching point pairs.
2. The method according to claim 1, wherein, The matching points and the trajectory points are points in the same three-dimensional coordinate system; The step of, if any one of the matching points in the matching point pair is located between two trajectory points, determining that the matching point pair is a false match, includes: If the matching point is located between the two trajectory points in any one-dimensional coordinate axis direction of the three-dimensional coordinate system, determine that the matching point is located between the two trajectory points; If any one of the matching points in the matching point pair is located between the two trajectory points, determine that the matching point pair is a false match.
3. The method according to claim 1, wherein, The step of obtaining two sets of point cloud data to be matched includes: According to the position information of the trajectory points in the two sets of driving trajectory data, determine whether the two sets of point cloud data corresponding to the two sets of driving trajectory data overlap; If the two sets of point cloud data corresponding to the two sets of driving trajectory data overlap, determine that the two sets of point cloud data corresponding to the two sets of driving trajectory data are the two sets of point cloud data to be matched.
4. The method according to claim 3, wherein, The step of, if the two sets of point cloud data corresponding to the two sets of driving trajectory data overlap, determining that the two sets of point cloud data corresponding to the two sets of driving trajectory data are the two sets of point cloud data to be matched, includes: If the two sets of point cloud data corresponding to the two sets of driving trajectory data overlap, and the two sets of driving trajectory data are respectively the driving trajectory data on different road surfaces, determine that the two sets of point cloud data corresponding to the two sets of driving trajectory data are the two sets of point cloud data to be matched.
5. The method according to claim 1, wherein, The step of matching the matching points with the trajectory points in the driving trajectory data corresponding to the point cloud data where the matching points are located to obtain the trajectory points corresponding to the matching points, includes: Compare the acquisition time of the matching points with the acquisition time of the trajectory points in the driving trajectory data, and determine the trajectory point with the smallest acquisition time difference from the matching points in the driving trajectory data as the trajectory point corresponding to the matching points.
6. A point cloud data processing apparatus, comprising: The first acquisition module is configured to obtain two sets of point cloud data to be matched, where the point cloud data includes the acquisition time and point position of the point cloud; The second acquisition module is configured to perform point matching on the two sets of point cloud data to obtain multiple matching point pairs in the two sets of point cloud data, where the matching point pair includes two matching points respectively located in the two sets of point cloud data; The third acquisition module is configured to match the matching points with the trajectory points in the driving trajectory data corresponding to the point cloud data where the matching points are located to obtain the trajectory points corresponding to the matching points; A determination module, configured to determine that the pair of matching points is a mismatched pair if any one of the matching points in the pair of matching points is located between two trajectory points, where the two trajectory points are two trajectory points corresponding to the two matching points in the pair of matching points respectively; A filtering module, configured to filter out the mismatched pairs of matching points among the multiple pairs of matching points to obtain correct pairs of matching points.
7. An electronic device, comprising a memory and a processor; wherein, The memory is used to store one or more computer instructions, and the one or more computer instructions are executed by the processor to implement the method steps described in any one of claims 1 to 5.
8. A computer-readable storage medium, having computer instructions stored thereon, wherein, When the computer instructions are executed by the processor, the method described in any one of claims 1-5 is implemented.
9. A computer program product, comprising computer instructions, wherein, When the computer instructions are executed by the processor, the method steps described in any one of claims 1 to 5 are implemented.
10. A navigation method, wherein, Obtain a navigation route calculated at least based on a starting point, an ending point, and road conditions based on an electronic map, and perform navigation guidance based on the navigation route, where the electronic map is generated based on point cloud data matched by the method described in any one of claims 1 to 5.
Citation Information
Patent Citations
Method, device and system for eliminating repeated points in point cloud data
CN113094358A
High-precision map data association method and device, electronic equipment and storage medium
CN114036247A