Point cloud data smoothing method and device, electronic equipment and storage medium
By maintaining the curvature of the point cloud data segments, the break points are smoothed, thus solving the problem of point cloud data breakage and improving the accuracy and quality of map data.
Patent Information
- Application Number
- CN202110673820.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-06-17
- Publication Date
- 2026-02-03
- Estimated Expiration
- 2041-06-17
AI Technical Summary
In existing technologies, point cloud data may be broken on both sides of a location during the map data production process, leading to a decrease in the accuracy and quality of the map data.
By determining the curvature of the point cloud data segment to be smoothed, and by modifying the latitude, longitude and elevation coordinates while keeping the curvature constant, the point cloud data at the break point is smoothed to achieve the continuity of the point cloud data.
It effectively eliminated the fragmentation of point cloud data, improved the accuracy and quality of map data, and enhanced the continuity of map data.
Smart Images

Figure CN115496667B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of map data processing technology, and in particular to a method, apparatus, electronic device and storage medium for smoothing point cloud data. Background Technology
[0002] Currently, with the continuous development of electronic technology, maps are able to present increasingly richer content to people. In addition to 2D maps, the emergence of 3D maps, satellite maps, and panoramic maps has brought a richer experience to people's perception of maps and can provide users and vehicles with more services such as assisted navigation and autonomous driving.
[0003] In existing technologies, in order to create map data, suppliers use map acquisition vehicles and other map acquisition equipment to collect vector data of roads in the area to be processed. The high-precision radar on the map acquisition vehicle is used to collect point cloud data, and the high-definition camera is used to collect image data. Subsequently, the supplier's back-end server can calculate the map data based on the point cloud data and image data collected by the map acquisition equipment.
[0004] Using existing technologies, due to limitations in data acquisition conditions and different reference systems, point cloud data for locations such as parking lot entrances and exits in map data may exhibit breaks in the point cloud data segments on both sides of the location. How to eliminate the breaks in the point cloud data and smoothly connect the broken point cloud data is a technical problem that urgently needs to be solved in this field. Summary of the Invention
[0005] This application provides a method, apparatus, electronic device, and storage medium for smoothing point cloud data, so as to eliminate the breaks in point cloud data and smoothly connect the broken point cloud data.
[0006] A first aspect of this application provides a method for smoothing point cloud data, comprising: determining the curvature of a second point cloud data segment based on its latitude and longitude coordinates; wherein, on a latitude and longitude plane, a first end of the second point cloud data segment is opposite to a second end of a first point cloud data segment; the second end of the first point cloud data segment and the first end of the second point cloud data segment include a first point cloud dataset corresponding to the same location; modifying the latitude and longitude coordinates of the point cloud dataset in the second point cloud data segment based on the curvature of the second point cloud data segment, so that the point cloud data of the second point cloud data segment and the second point cloud dataset in the first point cloud data segment are continuous, and the curvature of the second point cloud data segment remains unchanged; wherein, the second point cloud dataset includes point cloud data in the first point cloud data segment other than the first point cloud dataset.
[0007] In one embodiment of the first aspect of this application, before determining the curvature of the second point cloud data segment based on the latitude and longitude coordinates of the second point cloud data segment to be smoothed, the method further includes: performing registration processing on the latitude and longitude coordinates of all point cloud data in the first point cloud data segment and the second point cloud data segment to determine the first point cloud dataset corresponding to the same position in the first point cloud data segment and the second point cloud data segment.
[0008] In one embodiment of the first aspect of this application, determining the curvature of the second point cloud data segment based on the latitude and longitude coordinates of the second point cloud data segment to be smoothed includes: determining the bending direction of the second point cloud data segment based on the latitude and longitude coordinates of all point cloud data in the second point cloud data segment; obtaining the minimum curvature based on the changes of multiple point cloud data at the innermost edge of the bending direction; obtaining the maximum curvature based on the changes of multiple point cloud data at the outermost edge of the bending direction; dividing the point cloud data in the second point cloud data segment into multiple layers based on a preset curvature change rule between the minimum curvature and the maximum curvature, and obtaining multiple curvatures corresponding to multiple layers in the second point cloud data segment.
[0009] In one embodiment of the first aspect of this application, modifying the latitude and longitude coordinates of the point cloud dataset in the second point cloud data segment according to the curvature of the second point cloud data segment includes: for each layer of point cloud data in the second point cloud data segment, determining the first curvature center of the layer in the second point cloud data segment according to the first endpoint, the second endpoint, and the curvature of the layer in the second point cloud data segment; determining the modified second curvature center according to the second endpoint, the third endpoint, and the curvature of the layer in the second point cloud data segment; wherein, the third endpoint is the point cloud data corresponding to the intersection of the second point cloud dataset and the first point cloud dataset in the first point cloud data segment; and modifying the latitude and longitude coordinates of each point cloud data between the first endpoint and the second endpoint according to the time proportion of the point cloud data in the second point cloud data segment, to the latitude and longitude coordinates of the target position between the third endpoint and the second endpoint.
[0010] In one embodiment of the first aspect of this application, the step of modifying the latitude and longitude coordinates of each point cloud data between the first endpoint and the second endpoint according to the first curvature center and the second curvature center, and then modifying them to the latitude and longitude coordinates of the target position between the third endpoint and the second endpoint according to the time proportion of the point cloud data within the second point cloud data segment, includes: for the first point cloud data in the first point cloud data segment, calculating the second included angle between the first point cloud data, the second endpoint, and the first curvature center, and calculating the first included angle between the first endpoint, the second endpoint, and the first curvature center, to obtain the proportional relationship between the second included angle and the first included angle; determining a fourth included angle among the third included angles between the third endpoint, the second endpoint, and the second curvature center that is the same as the proportional relationship; determining the target position corresponding to the first point cloud data according to the fourth included angle, the second endpoint, and the second curvature center; and modifying the latitude and longitude coordinates of the first point cloud data to the latitude and longitude coordinates of the target position.
[0011] In one embodiment of the first aspect of this application, it further includes: modifying the elevation coordinates of the point cloud data between the first endpoint and the second endpoint in the second point cloud data segment to the latitude and longitude coordinates of the target position between the third endpoint and the second endpoint according to the time proportion of the point cloud data in the second point cloud data segment.
[0012] In one embodiment of the first aspect of this application, modifying the elevation coordinates of point cloud data in the second point cloud data segment according to the time ratio includes: for the first point cloud data in the first point cloud data segment, calculating the second GPS time between the first point cloud data and the first endpoint, and calculating the first GPS time between the first endpoint and the second endpoint to obtain the ratio between the second GPS time and the first GPS time; determining a fourth GPS time in the third GPS time between the third endpoint and the second endpoint that has the same ratio; determining the target location corresponding to the first point cloud data based on the fourth GPS time and the second endpoint; and modifying the elevation coordinates of the first point cloud data to the elevation coordinates of the target location.
[0013] A second aspect of this application provides a point cloud data smoothing apparatus, which can be used to perform a point cloud data smoothing method as provided in the first aspect of this application. The apparatus includes: a determining module, configured to determine the curvature of a second point cloud data segment based on the latitude and longitude coordinates of the second point cloud data segment to be smoothed; wherein, on the latitude and longitude plane, a first end of the second point cloud data segment is opposite to a second end of a first point cloud data segment; the second end of the first point cloud data segment and the first end of the second point cloud data segment include a first point cloud dataset corresponding to the same location; and a smoothing module, configured to modify the latitude and longitude coordinates of the point cloud dataset in the second point cloud data segment based on the curvature of the second point cloud data segment, so that the point cloud data of the second point cloud data segment and the second point cloud dataset in the first point cloud data segment are continuous, and the curvature of the second point cloud data segment remains unchanged; wherein, the second point cloud dataset includes point cloud data in the first point cloud data segment other than the first point cloud dataset.
[0014] A third aspect of this application provides an electronic device, including a processor and a memory; wherein the memory stores a computer program, and when the processor executes the computer program, the processor can be used to perform a point cloud data smoothing method as described in any of the first aspects of this application.
[0015] A fourth aspect of this application provides a computer-readable storage medium, characterized in that the computer-readable storage medium stores a computer program, which, when executed, can be used to perform a point cloud data smoothing method as described in any of the first aspects of this application.
[0016] In summary, the point cloud data smoothing method and apparatus provided in this application, based on the curvature of the point cloud data segment to be smoothed, and on the basis of the original trend of the point cloud data segment, smooths the point cloud data at the break points, thereby connecting the break points of the point cloud data in the map data, effectively eliminating the break points of the point cloud data, eliminating errors, improving the accuracy of the map data, and improving the quality of the map data. Attached Figure Description
[0017] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0018] Figure 1 This is a schematic diagram illustrating the application scenario of this application;
[0019] Figure 2 This is a schematic diagram illustrating the visualization of point cloud data in map data.
[0020] Figure 3 A flowchart illustrating an embodiment of the point cloud data smoothing method provided in this application;
[0021] Figure 4 A schematic diagram of the defined point cloud data segment provided in this application;
[0022] Figure 5 A schematic diagram of the curvature of the second point cloud data segment provided in this application;
[0023] Figure 6A A schematic diagram of an embodiment of the second point cloud dataset provided in this application;
[0024] Figure 6B A schematic diagram of another embodiment of the second point cloud dataset provided in this application;
[0025] Figure 7 A schematic diagram of the smoothed point cloud data provided in this application;
[0026] Figure 8 A schematic flowchart of another embodiment of the point cloud data smoothing method provided in this application;
[0027] Figure 9 A schematic diagram of the point cloud slices provided in this application;
[0028] Figure 10 A schematic diagram illustrating the process of modifying the latitude and longitude coordinates of the point cloud data provided in this application;
[0029] Figure 11 A schematic diagram illustrating the process of modifying the latitude and longitude coordinates of the point cloud data provided in this application;
[0030] Figure 12 A schematic diagram illustrating the process of modifying the elevation coordinates of the point cloud data provided in this application. Detailed Implementation
[0031] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0032] The terms “first,” “second,” “third,” “fourth,” etc. (if present) in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a particular order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of this application described herein can be implemented, for example, in orders other than those illustrated or described herein. Furthermore, the terms “comprising” and “having,” and any variations thereof, are intended to cover a non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.
[0033] Figure 1 This is a schematic diagram illustrating the application scenario of this application, such as... Figure 1 The illustration depicts a scenario for acquiring point cloud data. Map acquisition device A can be a map acquisition vehicle driven by staff of a map data provider. When map acquisition vehicle A travels on a straight road a and a winding road b, it collects point cloud data, including information about the road itself and its surrounding environment, using sensors such as radar, cameras, and GPS positioning devices installed on the vehicle. Figure 1 A circular black dot represents a point cloud data point. It can be understood that adjacent point cloud data points are continuous in time within each point cloud data point. The map acquisition vehicle A will send the continuous point cloud data of the roads a and b it travels through back to the supplier's backend server, where staff will perform subsequent processing on the point cloud data.
[0034] In such Figure 1 In some scenarios shown, when the map acquisition device is traveling on road b (Figure 21), due to factors such as fewer satellites and weaker GPS signals detected by the acquisition device at the junction of region 10 and region 20, or because the point cloud data of region 20 has been processed using the SLAM algorithm, or due to factors such as the accumulation of errors and different reference frames, although the point cloud data collected by the map acquisition vehicle is continuous, errors can easily occur at locations such as the junction of the two regions (Figure 21) in the processed map data.
[0035] For example, Figure 2 This is a schematic diagram illustrating the visualization of point cloud data in map data, such as... Figure 2 The figure shows, as Figure 1The diagram illustrates the errors in the point cloud data collected by map acquisition vehicle A at regions 10 and 20 after processing. It clearly shows that while the point cloud data for regions 10 and 20 are continuous on either side of the connection point 21, a "break" occurs at this point. Although the point cloud data on either side of the break may correspond to the same location, their latitude and longitude coordinates in the resulting map data do not align. This broken point cloud data significantly impacts the accuracy of the map data provided by the supplier, reducing its quality.
[0036] Therefore, how to eliminate such Figure 2 The broken positions in the point cloud data of the map data shown are the technical problem solved by this application. This application maintains the curvature of the broken positions in the point cloud data in the map data, and smooths the point cloud data at the broken positions based on the original trend of point cloud data change. This connects the broken positions in the point cloud data in the map data, thereby effectively eliminating the broken points in the point cloud data, eliminating errors, improving the accuracy of the map data, and improving the quality of the map data.
[0037] The technical solutions of this application will be described in detail below with specific embodiments. The following specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments.
[0038] Figure 3 A flowchart illustrating an embodiment of the point cloud data smoothing method provided in this application is shown below. Figure 3 As shown, the execution subject of the point cloud data smoothing method provided in this embodiment can be an electronic device with relevant data processing capabilities, such as a computer, server, workstation, etc. In this embodiment, an electronic device is used as an example for execution. Specifically, as shown... Figure 3 The point cloud data smoothing methods shown include:
[0039] S101: Determine the first point cloud data segment and the second point cloud data segment in the map data.
[0040] In this process, the electronic device, acting as the execution entity, first needs to determine the point cloud data to be smoothed before smoothing it. Figure 2For example, the first point cloud data segment includes multiple consecutive point cloud data in the region 10 to the left of the connection 21 on road b, and the second point cloud data segment includes multiple consecutive point cloud data to the right of the connection 21 on road b. Simultaneously, there is a breakpoint between the first and second point cloud data segments on the latitude and longitude plane. The second end of the first point cloud data segment on one side of the breakpoint is opposite to the first end of the first point cloud data segment on the same side of the breakpoint. Furthermore, both the first and second point cloud data segments include at least one point cloud data corresponding to the same location on both sides of the breakpoint. This at least one identical point cloud data is denoted as the first point cloud dataset.
[0041] Optionally, the first point cloud data segment and the second point cloud data segment may be specified by the staff sending instructions to the electronic device, or they may be determined by the electronic device based on the changing trend between latitude and longitude coordinates when traversing the point cloud data in the map data; and the number of point cloud data in each point cloud data segment is not limited, and may be specified, preset, or specified by the staff sending instructions to the electronic device.
[0042] In one specific implementation method Figure 4 This is a schematic diagram of a defined point cloud data segment provided in this application, wherein the electronic device, as the executing entity, can display such data on display page 30 provided on its display screen. Figure 2 The point cloud data within the road shown can be used to identify a breakpoint at connection 21 on the display page. When an operator determines this breakpoint using a mouse, keyboard, or other interactive device, they can select the breakpoint using a selection box 31 on the display page 30. The first point cloud data segment 311 includes the point cloud data ae to the left of connection 21 (selected by the selection box 31), and the second point cloud data segment 312 includes the point cloud data fj to the right of connection 21 (selected by the selection box 31). The second end e of the first point cloud data segment 311 is opposite to the first end f of the second point cloud data segment 312. It should be noted that... Figure 2-4 The number of point cloud data shown is only an example. It is understood that there can be more point cloud data between ae and fj. The figure uses one row of point cloud data as an example. It is understood that point cloud data can also be divided into multiple rows on the same road, so that the point cloud data has a certain "thickness".
[0043] S102: Based on the first point cloud dataset in the first point cloud data segment, register the first point cloud dataset in the second point cloud data segment.
[0044] In this process, since the first and second point cloud data segments each contain the same point cloud data in the first point cloud dataset on both sides of the breakpoint, these point cloud data have different coordinates in the first and second point cloud data segments even though they are point cloud data at the same latitude and longitude location. Therefore, it is necessary to first find these point cloud data, and then move the coordinates of the point cloud data in the second point cloud data segment to the coordinates in the first point cloud data segment through rotation matrix and translation vector. This maintains the consistency of the point cloud data at the same location on both sides of the breakpoint, and in the subsequent curvature smoothing process, the known accurate point cloud data in the first point cloud data segment will not be processed. This process of determining the point cloud data corresponding to the same location is called the "registration" of point cloud data. In addition, this application has another premise: the region 10 corresponding to the first point cloud data segment is a known and accurate region, which may have been processed or confirmed by staff. The point cloud data in the first point cloud data segment is accurate in latitude and longitude coordinates. Then, the registration of the first point cloud dataset in the second point cloud data segment can be achieved based on the first point cloud data segment in region 10.
[0045] In the specific implementation process, the iterative closest point (ICP) algorithm can be used to determine the point cloud data corresponding to the same position on both sides of the breakpoint between the first and second point cloud data segments. The number of these pairs can be four or more; the more pairs, the higher the registration accuracy. Specifically, the core of the ICP algorithm is to minimize the objective function of the following formula:
[0046]
[0047] Where n is the number of nearest neighbor pairs, Pi is a point cloud data point in the second point cloud data segment, qi is the nearest point in the first point cloud data segment corresponding to Pi, R is the rotation matrix, and T is the translation vector. After determining the n nearest neighbor pairs for the first and second point cloud data segments using Formula 1, the optimal rotation matrix R and translation vector T are calculated using the least squares method. When a new rotation matrix R and translation matrix T are obtained, the positions of some points change after rotation, and some nearest neighbor pairs also change accordingly. Therefore, Formula 1 needs to be iterated again until the calculated rotation matrix R and translation matrix T are less than a specific value, or the objective function of Formula 1 is less than a specific value, or the nearest neighbor pairs no longer change. Only then is the final calculated rotation matrix R and translation vector T between the first and second point cloud data segments determined.
[0048] Finally, for the point cloud data in the first point cloud dataset within the second point cloud data segment, the latitude and longitude dataset can be directly modified according to the rotation matrix R and translation vector T, making the latitude and longitude data of the first point cloud dataset in the second point cloud data segment identical to that of the first point cloud dataset in the second point cloud data segment. This achieves registration between the first and second point cloud data segments. Subsequently, when adjusting the curvature of the second point cloud data segment, the point cloud data within the second point cloud dataset in the first point cloud data segment remains unchanged. Furthermore, by modifying the point cloud data in the second point cloud data segment, the modification of the first point cloud dataset within the first point cloud data segment is simultaneously achieved. The second point cloud dataset includes all point cloud data in the first point cloud data segment except for the first point cloud dataset.
[0049] S103: Determine the curvature of the second point cloud data segment based on its latitude and longitude coordinates.
[0050] Specifically, Figure 5 This is a schematic diagram of the curvature of the second point cloud data segment provided in this application. Specifically, the curvature calculated in this embodiment can be the maximum and minimum curvature of the second point cloud data segment. Curvature refers to the rate of rotation of the tangent angle about the arc length when tangents are drawn from continuous points on a curve. It is a numerical value expressed in differential form, used to represent the degree to which the curve deviates from a straight line. The greater the curvature, the greater the curvature of the curve. For example... Figure 5As shown, on the latitude and longitude plane, the second point cloud data segment fj includes multiple point cloud data points, and the point cloud data exhibits different layer distributions due to factors such as different lanes on the road, resulting in a certain thickness in the distribution of the point cloud data. First, three non-collinear point cloud data points (X, Y, and Z) on the innermost side of the curve bending direction of fj are selected. Based on the time range of these three point cloud data points, the minimum circumcircle and center O of the second point cloud data segment are obtained. Subsequently, based on the planar distance between the center O and all point cloud data points on the latitude and longitude plane of the second point cloud data segment, the minimum curvature of adjacent point cloud data points can be obtained. Correspondingly, by selecting three non-collinear point cloud data points on the outermost side of the curve bending direction, the maximum circumcircle and center of the second point cloud data segment can be obtained based on the time range of these three point cloud data points, and the maximum curvature can also be determined. Specifically, in S103, the point cloud data in the second point cloud data segment can be sliced according to different radii of curvature, so that all point cloud data can be calculated separately according to different layers. The slicing can be understood as layering multiple consecutive point cloud data in the second point cloud data. Within each layer or slice, the corresponding radius of curvature is different, resulting in different curvatures. For example, firstly, the maximum and minimum curvatures in the second point cloud data segment can be converted into radii of curvature, where the radius of curvature is the reciprocal of the curvature. Therefore, the minimum radius of curvature is the reciprocal of the maximum curvature, and the maximum radius of curvature is the reciprocal of the minimum curvature. Subsequently, a threshold distance is set to segment the radii of curvature, and the smaller the threshold distance, the better the smoothing effect on subsequent point cloud data. Specifically, after obtaining the segmented point cloud curvature radius, by traversing the distance between each point cloud data point and the center O of the circle in the entire second point cloud data segment, and relying on the segmented curvature radius, all point cloud data points in the second point cloud data are segmented into multiple intervals. Each interval includes one or more point cloud data points, and the curvature radius between adjacent intervals is different. For example, in Figure 5 In the example shown, the point cloud data in the second point cloud data segment can be sliced into different layers C1, C2 and C3, which can then yield different radii of curvature, R1, R2 and R3, etc.
[0051] S104: Based on the curvature of the second point cloud data determined in S103, modify the latitude and longitude coordinates of all point cloud data in the second point cloud data segment to achieve continuity between the second point cloud dataset in the first point cloud data segment and the first point cloud dataset in the second point cloud data segment, while keeping the curvature of the second point cloud data segment unchanged, thereby completing the smoothing process of the first point cloud data segment and the second point cloud data segment.
[0052] The second point cloud data includes the point cloud data in the first point cloud data segment, excluding the first point cloud dataset. It can be understood that if the curvature of the second point cloud data is determined in S103, and the second point cloud data is then layered into three layers C1, C2, and C3, the latitude and longitude coordinates of the point cloud data in each of the three layers are modified in S104. However, if the second point cloud data determined in S103 has only one layer, only the latitude and longitude coordinates of that layer need to be modified in S104. This application will subsequently use the modification of the latitude and longitude coordinates of one layer corresponding to point cloud data fj in the second point cloud data as an example; the processing method for other layers is the same.
[0053] For example, Figure 6A A schematic diagram of an embodiment of the second point cloud dataset provided in this application, as shown below. Figure 6A Taking the first point cloud data segment ae and the second point cloud data segment fj as examples, each data segment includes multiple consecutive point cloud data. Assume that point cloud data de in the first point cloud data segment and point cloud data fg in the second point cloud data segment correspond to the same first point cloud dataset. After registering the first point cloud dataset in S102, the point cloud data between point cloud data fj needs to be processed in S104. Since the first data segment de in the first point cloud data segment corresponds to the same position as the first data segment fg in the second point cloud data segment, the breakpoint at the first end in the second point cloud data segment is shifted from f to d. Simultaneously, the breakpoint j at the second end in the second point cloud data segment is not processed; the purpose is to maintain the consistency between point cloud data j and fj. Figure 4 The selection box 31 is used to ensure the continuity of the point cloud data on the right, preventing new breaks or gaps from being created when processing the point cloud data within selection box 31. It should be noted that... Figure 6A China and Israel Figure 5 Using the point cloud data of one layer after slicing as an example, in actual calculations, further processing is required. Figure 5 The same calculations are performed on each layer of point cloud data.
[0054] Specifically, in Figure 6A In the example shown, the first point cloud dataset is defined as the point cloud data between the first point cloud data segments de, and the second point cloud dataset is the point cloud data between ad within the first point cloud data segment. Combining the curvature value of the second point cloud data segment fj determined in S103, and the first endpoint f and the second endpoint j in the second point cloud data segment, the second radius of curvature R1 corresponding to the second point cloud data segment fj, and the center O of the curvature circle can be obtained. At this time, the second point cloud data segment fj corresponds to the arc fOj in the figure. Subsequently, Figure 6BThis is a schematic diagram of another embodiment of the second point cloud dataset provided in this application. Based on the third endpoint d (the third endpoint d is the endpoint of the first point cloud dataset, i.e., the first point overlapping between the first and second point cloud data segments) and the second endpoint j, and combined with the second radius of curvature R1 calculated from the curvature, the center O' between dj can be obtained, which is equivalent to... Figure 6A The original center O has been moved to Figure 6B The center O' in the middle, then, can be followed according to... Figure 6A Using the same distribution, the latitude and longitude coordinates of the point cloud data between fj are adjusted in a way that changes from center O to center O', so that... Figure 6B The point cloud data between fj is adjusted in latitude and longitude coordinates from the original trend of fj to the trend of dj. The curvature between dj is the same as the radius of curvature between fj. At the same time, the second point cloud dataset ad in the first point cloud data segment is continuous with the first point cloud dataset fg in the second point cloud data segment. Finally, the smoothed point cloud data between aj is the solid line part of ad and the dashed line part of dj.
[0055] Specifically, in Figures 6A to 6B In the specific smoothing process, the latitude and longitude coordinates of the point cloud data are adjusted according to the time proportion of each point cloud data in the entire point cloud data segment of fj, so that the time proportion of the adjusted point cloud data in the point cloud data segment of dj remains unchanged. For example, in Figure 6A In the example shown, within the second point cloud data segment fj, the GPS time of point cloud fg is T1-T2, corresponding to the arc of fOj in the figure. This yields the first included angle β between the first endpoint f, the second endpoint j, and the center O of the first curvature circle. Taking any first point cloud data h in the second point cloud data segment as an example, the GPS time corresponding to this first point cloud data h and point cloud data f is T1-T3. Then, based on (T3-T1) / (T2-T1), the proportion of point cloud data h within the entire point cloud data segment fj can be calculated, thus yielding the second included angle α between the first point cloud data h, the first endpoint f, and the center O of the first curvature circle. Subsequently... Figure 6BIn the example shown, based on the total time proportion of the point cloud data segment dj, while moving from the first curvature center O to the second curvature center O', and keeping the first included angle β between the first endpoint f, the second endpoint j, and the first curvature center O unchanged, and keeping the ratio of the second included angle α to the first included angle β unchanged, the target position h' corresponding to the first point cloud data h can be calculated based on the time proportion (T3-T1) / (T2-T1). Finally, based on the latitude and longitude coordinates of the target position h', the latitude and longitude coordinates of the first point cloud data h can be modified to match the latitude and longitude coordinates of the target position h', thus modifying the first point cloud data h. Following the same method, all point cloud data in the second point cloud data segment fj can be moved according to the time proportion, so that the moved data segment dj maintains the original trend of fj while keeping the radius and curvature unchanged.
[0056] Figure 7 This is a schematic diagram of the smoothed point cloud data provided in this application, as shown below. Figure 4 The point cloud data within the selection box 31 shown, after being processed by the embodiments of this application, achieves the following: Figure 7 The state of the selected box 31 eliminates the original breakpoints, smoothly connects the first and second point cloud data segments on both sides of the breakpoint, and ensures that the curvature of the second point cloud data segment within the selected box is the same as the curvature of the second point cloud data segment before smoothing. Furthermore, the second end of the second point cloud data segment can also be connected to the point cloud data on the right side of the selected box 31. Thus, based on the original trend of point cloud data changes, the point cloud data at the breakpoint is smoothed. Therefore, this embodiment of the application can connect the breakpoints in the point cloud data in the map data, thereby effectively eliminating point cloud data breaks, eliminating errors, improving the accuracy of the map data, and improving the quality of the map data.
[0057] Furthermore, in the above embodiments of this application, it is possible to [do something such as...]. Figure 7 In some embodiments, the latitude and longitude plane coordinates of point cloud data under latitude and longitude coordinates are smoothed. In other embodiments, in addition to adjusting the latitude and longitude coordinates of the point cloud data, the elevation coordinates of the point cloud data can also be smoothed to make them continuous on the elevation plane. In the embodiments of this application, based on the basic idea of keeping the rate of change of elevation coordinates constant, when smoothing the point cloud data, the elevation value of each point cloud data is weighted and adjusted according to the time proportion of the point cloud data in the second point cloud data segment.
[0058] For example, taking Figure 6 as an example, assuming that the point cloud data *de* in the first point cloud data segment and the point cloud data *fg* in the second point cloud data segment correspond to the same first point cloud dataset, then, based on the known elevation coordinates of the first endpoint *d* and the second endpoint *j* on one side of the first point cloud dataset, the elevation values of the point cloud data between the second point cloud data segments *fj* are smoothed. Wherein, between the second point cloud data segments *fj*, the GPS time of point cloud *fg* is T1-T2. Taking any first point cloud data *h* in the second point cloud data segment as an example, the GPS time corresponding to this first point cloud data *h* and point cloud data *f* is T1-T3. Then, the proportional relationship (T3-T1) / (T2-T1) is calculated. Subsequently... Figure 6B In the example shown, the target position h' corresponding to the first point cloud data h is determined by keeping the time ratio (T3-T1) / (T2-T1) between the third endpoint d and the second endpoint j constant. Finally, the elevation coordinates of the first point cloud data h can be modified to the elevation coordinates of the target position h' based on the elevation coordinates of the target position h', thus realizing the modification of the elevation coordinates of the first point cloud data h.
[0059] In one specific implementation, the above process can be represented by the following formula, assuming that the minimum GPS time of the point cloud data between the second cloud data segments fj is T. GPSmin The maximum value of GPS time is T. GPSmax Then in such Figure 3 The vehicles at the breakpoint of parking lot entrance 31 shown can exhibit two trends based on changes in GPS time: the GPS time between the first and second point cloud data segments gradually decreases, and the GPS time between the first and second point cloud data segments gradually increases. Let Δt be the GPS time of the point cloud data currently being processed in the second point cloud data segment. Then, the weight corresponding to this point cloud data can be expressed by the following formula:
[0060]
[0061] Substituting the weight value F(△t) calculated by Formula 2 into the point cloud registration process, we obtain the point cloud registration formula in Formula 3 as follows:
[0062]
[0063] In the second point cloud data segment, the latitude and longitude coordinates (X, Y) and elevation coordinates (Z) of the original point cloud data are denoted as (X, Y, Z). Substituting Formula 2 into Formula 3, we obtain the adjusted coordinates (X, Y, Z) of the point cloud data. A Y A Z A As shown in Formula 4:
[0064]
[0065] After extracting the elevation coordinate data from Formula 4, we can obtain the smooth elevation equation shown in Formula 5.
[0066] Z A =F(Δt)Z S +(1-F(Δt))Z=F(Δt)Z S Formula 5: +(1-F(Δt))Z
[0067] In summary, this embodiment can eliminate the discontinuities in the elevation coordinates of point cloud data, thus smoothing the elevation coordinates of the point cloud data. Therefore, it can further improve the accuracy of map data and thus more effectively improve the quality of map data.
[0068] The following is in conjunction with the appendix Figure 8-12 This paper describes a specific application of the point cloud data smoothing method provided in the embodiments of this application.
[0069] Figure 8 A flowchart illustrating another embodiment of the point cloud data smoothing method provided in this application is shown below. Figure 8 As shown, after obtaining the two segments of point cloud data to be smoothed, the electronic device, acting as the execution entity, first determines the time range and curvature of the point cloud data, then slices it, and registers the point cloud data in the first point cloud dataset that is repeated within the second point cloud data segment. Subsequently, by calculating the latitude and longitude coordinates (X, Y) and elevation coordinates (Z) of the point cloud data in the second point cloud data segment respectively, the smoothing process of the second point cloud data segment is achieved, eliminating the breakpoints between the first and second point cloud data segments.
[0070] Figure 9 A schematic diagram of the point cloud slices provided in this application, as shown below. Figure 9 It shows Figure 8 The process of slicing point cloud data involves first calculating the curvature range and curvature radius range of the second point cloud data segment, and then dividing the second point cloud data segment into different intervals based on the change threshold. The curvature within each interval is considered to be the same, while the curvature of adjacent intervals is different.
[0071] Figure 10 A schematic diagram illustrating the process of modifying the latitude and longitude coordinates of the point cloud data provided in this application is shown below. Figure 8This document describes the process of modifying the latitude and longitude coordinates (X, Y) of point cloud data. First, the curvature of the second point cloud data segment is calculated by determining the proportion of time the point cloud data in each interval is within the entire interval. Then, the point cloud data within the second segment is modified based on this curvature. The process is performed individually based on the curvature radius of each point cloud slice. When processing the point cloud slice segmentation results, the maximum and minimum times of the segmented results are first determined, and the corresponding point cloud planar coordinates are obtained. Then, using the previously obtained center coordinates, the corresponding point cloud segment stitching result and the center of the circle form a sector, and the corresponding central angle of the sector can be calculated. Next, each point cloud in the segmented point cloud data is traversed, and its proportion of the corresponding central angle of the sector is calculated. Finally, the corresponding point cloud planar coordinates (X, Y) are determined by using the point cloud planar coordinate smoothing equation and the weighted proportion of the central angle of the sector.
[0072] Figure 11 A schematic diagram illustrating the process of modifying the latitude and longitude coordinates of the point cloud data provided in this application, wherein... Figure 10 Based on the above, to prevent a break or mismatch between the second end of the second point cloud data segment and the other side not within the selection box, improvements are made to the point cloud registration. Specifically, the point cloud planar coordinate smoothing equation mainly uses the maximum and minimum time point cloud coordinates of the point cloud slice segments. The minimum time point cloud planar coordinates are registered with the previously obtained rotation matrix R and translation matrix T to obtain the smoothed minimum time point cloud plane. The maximum time point cloud planar coordinates remain unchanged to connect with the preceding and following point cloud coordinates, avoiding breaks or gaps in the point cloud. Using the curvature radius of the point cloud slice segments, the smoothing result of the point cloud curvature radius is considered unchanged before and after. Using the curvature radius and the point cloud coordinates of the two endpoints after smoothing, the smoothed coordinate equation of the corresponding smoothed sector can be obtained. Then, using the first and last points and the corresponding obtained smoothed center coordinates, the smoothed coordinate equation can be transformed into a point cloud planar coordinate equation with respect to the weight values.
[0073] Figure 12 A schematic diagram illustrating the process of modifying the elevation coordinates of the point cloud data provided in this application is shown, where, as... Figure 8 This document describes the process of modifying the elevation coordinates (Z) of point cloud data. Specifically, based on the point cloud slicing results, each slice is processed individually according to its radius of curvature. When processing the segmented point cloud slicing results, the maximum and minimum times of each segment are first determined. Then, each point cloud in the segment is traversed to obtain its point cloud time, and its proportion of the total segmented point cloud time range is calculated. Finally, the corresponding point cloud elevation value Z is determined using the point cloud smoothing elevation equation and the weight ratio of its proportion of the point cloud time range.
[0074] In the foregoing embodiments, a point cloud data smoothing method provided by the embodiments of this application has been described. To implement the functions of the methods provided by the embodiments of this application, the electronic device serving as the execution subject may include hardware structures and / or software modules, implementing the above functions in the form of hardware structures, software modules, or a combination of hardware structures and software modules. Whether a particular function is executed in the form of hardware structures, software modules, or a combination of hardware structures and software modules depends on the specific application and design constraints of the technical solution.
[0075] For example, this application also provides a point cloud data smoothing device comprising: a determining module and a smoothing module, wherein the determining module is used to determine the curvature of the second point cloud data segment based on the latitude and longitude coordinates of the second point cloud data segment to be smoothed; wherein, on the latitude and longitude plane, the first end of the second point cloud data segment is opposite to the second end of the first point cloud data segment; the second end of the first point cloud data segment and the first end of the second point cloud data segment include a first point cloud dataset corresponding to the same position; the smoothing module is used to modify the latitude and longitude coordinates of the point cloud dataset in the second point cloud data segment based on the curvature of the second point cloud data segment, so that the point cloud data of the second point cloud data segment and the second point cloud dataset in the first point cloud data segment are continuous, and the curvature of the second point cloud data segment remains unchanged; wherein, the second point cloud dataset includes the point cloud data in the first point cloud data segment excluding the first point cloud dataset. Specifically, the specific principles and implementation methods of the above steps performed by each module in the point cloud data smoothing device can be referred to the point cloud data smoothing method in the foregoing embodiments of this application, and will not be repeated here.
[0076] It should be noted that the division of the various modules in the above device is merely a logical functional division. In actual implementation, they can be fully or partially integrated into a single physical entity, or they can be physically separated. These modules can be implemented entirely in software via processing element calls; they can be fully implemented in hardware; or some modules can be implemented by processing element calls to software, while others are implemented in hardware. They can be separate processing elements, integrated into a chip within the device, or stored as program code in the device's memory, invoked and executed by a processing element. The implementation of other modules is similar. Furthermore, these modules can be fully or partially integrated together, or implemented independently. The processing element described here can be an integrated circuit with signal processing capabilities. In the implementation process, each step of the above method or each of the above modules can be completed through integrated logic circuits in the hardware of the processor element or through software instructions.
[0077] For example, these modules can be one or more integrated circuits configured to implement the above methods, such as one or more application-specific integrated circuits (ASICs), one or more digital signal processors (DSPs), or one or more field-programmable gate arrays (FPGAs). As another example, when a module is implemented using processing element scheduler code, the processing element can be a general-purpose processor, such as a central processing unit (CPU) or other processor capable of calling program code. Furthermore, these modules can be integrated together to implement a system-on-a-chip (SOC).
[0078] In the above embodiments, implementation can be achieved entirely or partially through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented entirely or partially in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state disk (SSD)).
[0079] This application also provides an electronic device, including: a processor and a memory; wherein the memory stores a computer program, and when the processor executes the computer program, the processor can be used to execute a smoothing method for point cloud data as described in any of the foregoing embodiments of this application.
[0080] This application also provides a computer-readable storage medium storing a computer program, which, when executed, can be used to perform a smoothing method for point cloud data as described in any of the foregoing embodiments of this application.
[0081] This application also provides a chip for executing instructions, the chip being used to perform a point cloud data smoothing method executed by an electronic device as described in any of the foregoing embodiments of this application.
[0082] This application also provides a program product, which includes a computer program stored in a storage medium. At least one processor can read the computer program from the storage medium. When the at least one processor executes the computer program, it can implement a point cloud data smoothing method executed by an electronic device as described in any of the foregoing embodiments of this application.
[0083] Those skilled in the art will understand that all or part of the steps of the above-described method embodiments can be implemented by hardware related to program instructions. The aforementioned program can be stored in a computer-readable storage medium. When executed, the program performs the steps of the above-described method embodiments; and the aforementioned storage medium includes various media capable of storing program code, such as ROM, RAM, magnetic disks, or optical disks.
[0084] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features therein. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.
Claims
1. A method for smoothing point cloud data, characterized in that, include: The curvature of the second point cloud data segment is determined based on the latitude and longitude coordinates of the second point cloud data segment to be smoothed; wherein, on the latitude and longitude plane, the first end of the second point cloud data segment is opposite to the second end of the first point cloud data segment; the second end of the first point cloud data segment and the first end of the second point cloud data segment include the first point cloud dataset corresponding to the same position; Based on the curvature of the second point cloud data segment, the latitude and longitude coordinates of the point cloud dataset in the second point cloud data segment are modified so that the point cloud data of the second point cloud data segment is continuous with the point cloud dataset of the second point cloud dataset in the first point cloud data segment, and the curvature of the second point cloud data segment remains unchanged; wherein, the second point cloud dataset includes the point cloud data in the first point cloud data segment other than the first point cloud dataset.
2. The method according to claim 1, characterized in that, Before determining the curvature of the second point cloud data segment based on its latitude and longitude coordinates, the method further includes: The latitude and longitude coordinates of all point cloud data in the first point cloud data segment and the second point cloud data segment are registered to determine the first point cloud dataset corresponding to the same position in the first point cloud data segment and the second point cloud data segment.
3. The method according to claim 2, characterized in that, The step of determining the curvature of the second point cloud data segment based on its latitude and longitude coordinates includes: Based on the latitude and longitude coordinates of all point cloud data in the second point cloud data segment, determine the bending direction of the second point cloud data segment; The minimum curvature is obtained based on the changes in multiple point cloud data at the innermost edge of the bending direction; The maximum curvature is obtained based on the changes in multiple point cloud data on the outermost side of the bending direction; Based on the preset curvature variation law between the minimum curvature and the maximum curvature, the point cloud data in the second point cloud data segment is divided into multiple layers, and multiple curvatures corresponding to multiple layers in the second point cloud data segment are obtained.
4. The method according to claim 3, characterized in that, The step of modifying the latitude and longitude coordinates of the point cloud dataset in the second point cloud data segment according to the curvature of the second point cloud data segment includes: For each layer of point cloud data in the second point cloud data segment, the first curvature center of that layer in the second point cloud data segment is determined based on the first endpoint, the second endpoint, and the curvature of that layer in the second point cloud data segment. Based on the second endpoint of the second point cloud data segment, the third endpoint of the first point cloud data segment, and the curvature, the modified second curvature center is determined; wherein, the third endpoint is the point cloud data corresponding to the intersection of the second point cloud dataset and the first point cloud dataset in the first point cloud data segment; Based on the first curvature center and the second curvature center, the latitude and longitude coordinates of each point cloud data between the first endpoint and the second endpoint are modified according to the time proportion of the point cloud data within the second point cloud data segment, and then modified to the latitude and longitude coordinates of the target position between the third endpoint and the second endpoint.
5. The method according to claim 4, characterized in that, The step of modifying the latitude and longitude coordinates of each point cloud data between the first endpoint and the second endpoint according to the first curvature center and the second curvature center, and then modifying them to the latitude and longitude coordinates of the target position between the third endpoint and the second endpoint according to the time proportion of the point cloud data within the second point cloud data segment, includes: For the first point cloud data in the second point cloud data segment, calculate the second included angle between the first point cloud data, the first endpoint and the first curvature circle center, and calculate the first included angle between the first endpoint, the second endpoint and the first curvature circle center to obtain the proportional relationship between the second included angle and the first included angle. Determine the third included angle between the third endpoint, the second endpoint, and the center of the second curvature circle; and determine the fourth included angle based on the third included angle and the proportional relationship. The target position corresponding to the first point cloud data is determined based on the fourth included angle, the second endpoint, and the center of the second curvature circle. Modify the latitude and longitude coordinates of the first point cloud data to the latitude and longitude coordinates of the target location.
6. The method according to claim 4 or 5, characterized in that, Also includes: Based on the time proportion of point cloud data within the second point cloud data segment, the elevation coordinates of the point cloud data between the first endpoint and the second endpoint in the second point cloud data segment are modified to the elevation coordinates of the target position between the third endpoint and the second endpoint.
7. The method according to claim 6, characterized in that, According to the stated time proportion, modify the elevation coordinates of the point cloud data in the second point cloud data segment, including: For the first point cloud data in the first point cloud data segment, calculate the second GPS time between the first point cloud data and the first endpoint, and calculate the first GPS time between the first endpoint and the second endpoint to obtain the ratio between the second GPS time and the first GPS time; Determine the third endpoint, the second endpoint, and the proportional relationship to determine the target location corresponding to the first point cloud data; Modify the elevation coordinates of the first point cloud data to the elevation coordinates of the target location.
8. A point cloud data smoothing device, characterized in that, include: The determining module is used to determine the curvature of the second point cloud data segment based on the latitude and longitude coordinates of the second point cloud data segment to be smoothed; wherein, on the latitude and longitude plane, the first end of the second point cloud data segment is opposite to the second end of the first point cloud data segment; the second end of the first point cloud data segment and the first end of the second point cloud data segment include the first point cloud dataset corresponding to the same position; The smoothing module modifies the latitude and longitude coordinates of the point cloud dataset in the second point cloud data segment according to the curvature of the second point cloud data segment, so that the point cloud data of the second point cloud data segment is continuous with the point cloud dataset of the second point cloud dataset in the first point cloud data segment, and the curvature of the second point cloud data segment remains unchanged; wherein, the second point cloud dataset includes the point cloud data in the first point cloud data segment other than the first point cloud dataset.
9. An electronic device, characterized in that, include: A processor and a memory; wherein the memory stores a computer program, and when the processor executes the computer program, the processor can be used to perform the point cloud data smoothing method as described in any one of claims 1-7.
10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed, can be used to perform the point cloud data smoothing method as described in any one of claims 1-7.
Citation Information
Patent Citations
Method for automatically registering cloud data of laser dots based on three-dimensional line characters
CN103679741A
Point cloud curve plane reconstruction method and system
CN104050720A