Point cloud data processing method and related device
By using adaptive segmentation parameters and Gaussian process regression models to screen reference plane points and combining them with grid maps to process point cloud data, the problem of inaccurate segmentation in traditional methods is solved, and more efficient object recognition and segmentation is achieved.
Patent Information
- Application Number
- CN202010246957.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-03-31
- Publication Date
- 2025-09-16
- Estimated Expiration
- 2040-03-31
AI Technical Summary
In traditional point cloud data segmentation methods, the fixed range division causes suspended point clouds to affect segmentation performance or obstacles lose their height dimensional features, making it difficult to accurately segment and identify objects.
Adaptive segmentation parameters are used to segment point cloud data, and the Gaussian process regression model is combined to screen reference plane points. Grid maps are used for processing, and object fusion and growth algorithms are used to improve segmentation accuracy.
The accuracy of point cloud data segmentation is improved, over-segmentation and under-segmentation are reduced, and the robustness and processing speed of the algorithm are enhanced.
Smart Images

Figure CN113469182B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of data processing, and more specifically, to a method and related apparatus for processing point cloud data. Background Art
[0002] With the advancement of sensor technology, point cloud data collected by lidar is increasingly being used in three-dimensional scene modeling. For example, in the fields of intelligent robot navigation, automated driving (ADS), motion recognition, etc. Object segmentation is an important application of point cloud data. By utilizing the overall and local features of point cloud data, point cloud data can be divided into several regions. The point clouds in each of these several regions have similar properties. Each region corresponds to an object with physical meaning and reflects the corresponding object geometry and posture characteristics. In traditional technologies, the region division process is often based on a fixed range. If the fixed range is too large, it will introduce suspended point clouds, affecting the segmentation performance; if the fixed range is too small, the obstacles after segmentation will lose the features in the height dimension, which will bring difficulties to the obstacle recognition process. Therefore, how to provide a more accurate segmentation method has become a technical problem that needs to be solved urgently. Summary of the Invention
[0003] This application provides a point cloud data processing method and related devices, which can improve the accuracy of point cloud data segmentation.
[0004] In a first aspect, an embodiment of the present application provides a method for processing point cloud data, the method comprising: acquiring first point cloud data, the first point cloud data being the first frame of point cloud data collected by a sensor; segmenting the first point cloud data using adaptive segmentation parameters to obtain N objects, where N is a positive integer greater than or equal to 2; and fusing the N objects according to preset rules. The above technical solution segments point cloud data using adaptive segmentation parameters to obtain multiple objects. This can improve segmentation performance and the accuracy of object recognition. In addition, the above technical solution can also perform a fusion operation on the objects obtained after segmentation, thereby reducing the occurrence of over-segmentation.
[0005] In one possible implementation, the first point cloud data is segmented using adaptive segmentation parameters to obtain N objects, including: determining a reference distance, where the reference distance is used to indicate the distance from a point in the first point cloud data to a preset position; determining at least one segmentation parameter based on a correspondence between the reference distance and the adaptive segmentation parameter; and growing based on the at least one segmentation parameter to obtain the N objects.
[0006] In another possible implementation, the fusing of the N objects according to a preset rule includes: determining an association relationship between each of the N objects and an object in second point cloud data, wherein the second point cloud data is point cloud data of a second frame collected by the sensor, and the second frame is a previous frame of the first frame; if at least two objects of the N objects are associated with the same object in the second point cloud data, fusing the at least two objects.
[0007] In another possible implementation, the method further includes: determining a first point cloud set from the first point cloud data, the first point cloud set consisting of non-reference plane points in the point cloud data; determining a first grid map based on the first point cloud set; and determining the reference distance includes determining a distance from a target grid in the first grid map to the preset position as the reference distance, wherein the target grid is a grid containing the point. The above technical solution converts the point cloud data into a grid map and processes the point cloud data using the grid map, thereby processing the point cloud data more quickly.
[0008] In another possible implementation, determining a first grid map based on the first point cloud set includes: determining M grid maps based on the first point cloud set, wherein the M grid maps correspond to points at M heights, respectively; determining the first grid map from the M grid maps, wherein the height of the point corresponding to the first grid map is less than the height of the point corresponding to other grid maps in the M grid maps, and M is a positive integer greater than or equal to 2.
[0009] In another possible implementation, growing the N objects based on the segmentation parameters includes: determining reference objects included in the first grid map based on the target grid in the first grid map and the at least one segmentation parameter; and performing region growing along the height direction based on the target grid in grid maps other than the first grid map in the M grid maps, using each reference object included in the first grid map as a seed region, to obtain the N objects. The above technical solution takes into account the height information of the point cloud data when segmenting the point cloud data, thereby reducing the occurrence of under-segmentation.
[0010] In another possible implementation, determining the reference object included in the first grid map based on the target grid in the first grid map and the at least one segmentation parameter includes: growing according to the first target grid and the first segmentation parameter to obtain a first reference object, wherein the first target grid is one of multiple target grids included in the first grid map, and the first segmentation parameter corresponds to the distance from the first target grid to the preset position; if at least one target grid among the multiple target grids does not belong to the first reference object, growing according to a second target grid and the second segmentation parameter to obtain a second reference object, wherein the second target grid is another one of the multiple target grids included in the first grid map, and the second target grid does not belong to the first reference object, and the second segmentation parameter corresponds to the distance from the second target grid to the preset position.
[0011] In another possible implementation, the first point cloud set is determined from the first point cloud data, including: determining a second grid map based on the first point cloud data, the second grid map being a grid map based on polar coordinates, the second grid map including P sector areas, where P is a positive integer greater than or equal to 2; determining a reference grid constituting the P sector areas, the height difference between the highest point and the lowest point in the reference grid being less than a second preset threshold, j=1,…,P; performing plane fitting based on the points in the reference grids in the P sector areas to obtain a fitting plane; determining the P The points in the j-th sector area in the sector area whose distance to the fitting plane is less than the third threshold are fitting points; a Gaussian process regression model corresponding to the j-th sector area is established based on the fitting points in the j-th sector area; based on the Gaussian regression model corresponding to the j-th sector area, it is determined whether each non-fitting point in the j-th sector area is a reference plane point; the points in the j-th sector area other than the reference plane point in the non-fitting point and the fitting points in the j-th sector area are determined to be non-reference plane points included in the j-th subset of the first point cloud set. The above technical solution assumes that the points on the reference plane obey the Gaussian distribution, which is more in line with the actual situation of the road surface. Using the Gaussian process regression model, reference plane points that are mistakenly identified as non-reference plane points can be screened out, thereby increasing the robustness of the algorithm.
[0012] In a second aspect, an embodiment of the present application provides a computing device, the communication device including a unit for implementing the first aspect or any possible implementation of the first aspect. The computing device can be a computing device or a component (such as a chip, circuit, etc.) for a computing device.
[0013] In a third aspect, embodiments of the present application provide a computing device, which may be a computing device for implementing the method design of the first aspect, or a chip provided in a computing device. The computing device includes: a processor coupled to a memory, capable of executing instructions in the memory to implement any possible implementation of the method design of the first aspect. Optionally, the computing device also includes a memory. Optionally, the computing device also includes a communication interface, the processor coupled to the communication interface.
[0014] When the computing device is a computing apparatus, the communication interface may be a transceiver, or an input / output interface.
[0015] When the computing device is a chip configured in a computing device, the communication interface may be an input / output interface.
[0016] Optionally, the transceiver may be a transceiver circuit. Optionally, the input / output interface may be an input / output circuit.
[0017] In a fourth aspect, an embodiment of the present application provides a computer program product, comprising: a computer program code, which, when executed on a computer, enables the computer to execute a method in any one of the possible implementations of the method design of the first aspect above.
[0018] In a fifth aspect, an embodiment of the present application provides a computer-readable medium, which stores a program code. When the computer program code runs on a computer, the computer executes a method in any possible implementation of the method design of the first aspect above.
[0019] In a sixth aspect, an embodiment of the present application provides a computing system, which includes the computing device described in the second aspect or the third aspect, and the computing system also includes a sensor for collecting point cloud data.
[0020] In a seventh aspect, an embodiment of the present application provides a computing device, which includes the computing system described in the sixth aspect.
[0021] Optionally, the device may be a vehicle, a robot, a drone, etc. The vehicle may be a fuel vehicle, a new energy vehicle, an automatic guided vehicle, etc. The robot may be a service robot, an industrial robot, etc.
[0022] Based on the implementation methods provided in the above aspects, this application can also be further combined to provide more implementation methods. BRIEF DESCRIPTION OF THE DRAWINGS
[0023] Figure 1 It is a schematic diagram of a possible application scenario of an embodiment of the present application.
[0024] Figure 2 This is a schematic flowchart of a method for processing point cloud data provided according to an embodiment of the present application.
[0025] Figure 3 This is a schematic flowchart of a method for processing point cloud data provided according to an embodiment of the present application.
[0026] Figure 4 The figure is a schematic diagram of a sector-shaped area in a grid map 301 .
[0027] Figure 5 is a schematic diagram of a portion of sectors in the grid map 301 .
[0028] Figure 6 This is a schematic flowchart of a method for processing point cloud data provided according to an embodiment of the present application.
[0029] Figure 7 It is a schematic diagram of a raster map and a binary image of the raster map.
[0030] Figure 8 The corresponding Figure 7 FIG. 6 is a schematic diagram of a binary image of a grid map 603 shown in (a).
[0031] Figure 9 This is a schematic flowchart of a method for processing point cloud data provided according to an embodiment of the present application.
[0032] Figure 10 is a schematic diagram of three binary images.
[0033] Figure 11 This is a schematic flowchart of a method for processing point cloud data provided according to an embodiment of the present application.
[0034] Figure 12 This is a schematic flowchart of a method for processing point cloud data provided according to an embodiment of the present application.
[0035] Figure 13 It is a schematic structural block diagram of a computing device provided according to an embodiment of the present application.
[0036] Figure 14 It is a structural block diagram of a computer device provided according to an embodiment of the present application. DETAILED DESCRIPTION
[0037] In order to help those skilled in the art better understand the technical solution of this application, some concepts involved in this application are first briefly introduced.
[0038] A 3D point cloud, also known as a laser point cloud (PCD) or simply a point cloud, is a collection of massive points that express the spatial distribution and surface characteristics of an object. This collection uses lasers to obtain the 3D coordinates of each sampling point on the surface of an object within a single spatial reference frame. While lacking detailed texture information compared to images, 3D point clouds contain richer 3D spatial information.
[0039] Unordered point cloud: An unordered point cloud means that the points in the three-dimensional point cloud are randomly arranged and each point exists independently.
[0040] Ordered point cloud: An ordered point cloud represents a point cloud whose points are arranged in the order they would appear in real 3D space. In addition to their spatial coordinates, points in an ordered point cloud are arranged in rows and columns, similar to pixels in an image. An ordered point cloud can be thought of as a depth image with 3D spatial information. The neighbors of a point in the ordered point cloud are also its neighbors in 3D space.
[0041] It is worth noting that in the embodiments of the present application, the specific type of point cloud is not distinguished. The point cloud data referred to in the embodiments of the present application can be a three-dimensional point cloud, an unordered point cloud, or an ordered point cloud.
[0042] The technical solution in this application will be described below with reference to the accompanying drawings.
[0043] Figure 1 This is a schematic diagram of a possible application scenario of the embodiment of the present application. This scenario can be applied to obstacle detection and recognition in autonomous driving scenarios. Figure 1 As shown, a sensor 120 and a computing device 130 may be installed in a vehicle 110. The sensor 120 is used to detect and scan point cloud data in a target scene. By way of example, the sensor 120 may include a lidar, a 3D scanner, a depth camera, etc., although this application is not limited thereto. The computing device 130 is connected to the sensor 120 and is used to obtain the point cloud data scanned by the sensor 120 and process the point cloud data. Based on the processing results, the computing device 130 analyzes the characteristic information of the target scene to facilitate reasonable decision-making and path planning.
[0044] It should be understood that Figure 1 The scenario is merely an example, and the method of this application can also be applied to other types of scenarios, as long as the scenario involves processing three-dimensional point cloud data. For example, it can also be applied to scenarios such as intelligent robot navigation, action recognition, and machine vision-based detection.
[0045] Taking machine vision-based inspection scenarios as an example, sensors (such as lidar, 3D scanners, and depth cameras) can detect and scan point cloud data in a target scene. A computing device acquires and processes this point cloud data, then analyzes the target scene's features based on the processing results to control a target device (such as a robot) to perform appropriate actions (e.g., selecting products with visual defects or sorting items).
[0046] The target device referred to in the embodiments of this application refers to a device that can process point cloud data and perform subsequent operations based on the processing results. For example, the target device can be a vehicle, a robot, or a drone. The vehicle can be a fuel-powered vehicle, a new energy vehicle, or an automated guided vehicle (AVG). The robot can be a service robot, an industrial robot, or the like.
[0047] In some embodiments, the sensor used to detect and scan point cloud data may be built into the target device. In this case, the sensor can transmit the acquired point cloud data via a transmission medium within the target device to a computing device within the target device responsible for processing the point cloud data. In other embodiments, the sensor used to detect and scan point cloud data may be external to the target device. In this case, the sensor can transmit the acquired point cloud data to the target device via wired or wireless transmission. After receiving the point cloud data from the sensor, the target device can transmit the point cloud data to the computing device responsible for processing the point cloud data.
[0048] Figure 2 This is a schematic flow chart of a method for processing point cloud data according to an embodiment of the present application. Figure 2 The illustrated method may be executed by a computing device disposed in a target device.
[0049] Step 201: Obtain point cloud data of the current frame.
[0050] Step 202 : Filter the reference plane points in the point cloud data to obtain a set of non-reference plane points.
[0051] For example, in autonomous driving scenarios, the reference plane can be the ground. Reference plane points are points in the point cloud data that lie on the ground. Correspondingly, non-reference plane points are points above the ground. Therefore, in autonomous driving scenarios, reference plane points can also be referred to as ground points, and non-reference plane points can also be referred to as non-ground points.
[0052] For example, in a machine vision-based inspection scenario, the reference plane could be the plane of an operating platform or a conveyor belt. Reference plane points are points located on the plane of the operating platform or conveyor belt. Correspondingly, non-reference plane points are points above the operating platform or conveyor belt.
[0053] Step 203 : clustering the non-reference plane points included in the non-reference plane point set to obtain a plurality of objects.
[0054] Step 204 , determining whether there are any objects that can be fused among the multiple objects obtained in step 203 .
[0055] It can be determined whether two or more objects in the plurality of objects are associated with one of the plurality of objects determined based on the previous frame of point cloud data. If at least two objects in the plurality of objects are associated with one of the plurality of objects determined based on the previous frame of point cloud data, then the at least two objects can be considered as a group of fusible objects. If any two objects in the plurality of objects are associated with two different objects in the plurality of objects determined based on the previous frame of point cloud data, then it can be determined that there are no fusible objects in the plurality of objects obtained in step 203.
[0056] If the multiple objects obtained in step 203 include at least one group of fusible objects, and each group of fusible objects in the at least one group of fusible objects includes two or more fusible objects, then a fusion operation is performed on the multiple fusible objects included in each group of fusible objects in the at least one group of fusible objects to obtain at least one object. The at least one object corresponds one-to-one to the at least one group of fusible objects. Each object in the at least one object is obtained by fusion of a corresponding group of fusible objects.
[0057] If the multiple objects obtained in step 203 do not include any fusible objects, then step 205 is directly executed.
[0058] Step 205 : Refresh the object sequence according to the result of step 204 .
[0059] Figure 2 This is a process of processing a frame of point cloud data acquired by the sensor. After executing step 205, the same process can be continued to be executed on the next frame of point cloud data (ie, executing steps 201 to 205).
[0060] It is understandable that if Figure 2If the point cloud data being processed is the first time the sensor has acquired point cloud data, then steps 204 and 205 do not need to be performed. Instead, multiple object sequences can be directly created based on the multiple objects determined in step 203. These multiple object sequences correspond one-to-one with the multiple objects. Then, steps 201 to 205 are performed on the next frame of point cloud data acquired.
[0061] The following combination Figures 3 to 11 right Figure 2 For ease of description, the following embodiments take the autonomous driving scenario as an example.
[0062] First, combine Figure 3 How to determine the process of non-reference plane point set (i.e. Figure 2 Step 202 shown in FIG.
[0063] Figure 3 This is a schematic flowchart of a method for processing point cloud data provided according to an embodiment of the present application.
[0064] Step 301: Determine a grid map based on the point cloud data of the current frame. This grid map is a grid map based on polar coordinates. For ease of description, the grid map determined in step 301 is referred to as grid map 301 below.
[0065] Assume that point Q is any point in the point cloud data. The point cloud data includes the coordinates of point Q in the Cartesian coordinate system. Assume that the coordinates of point Q in the Cartesian coordinate system are (x, y, z). Then the polar coordinates of point Q can be expressed as (range, theta). Range, theta, x, and y have the following relationship:
[0066] range=sqrt(x 2 +y 2 ),
[0067] theta=atan2(y,x),
[0068] Among them, sqrt() means calculating the square root, and atan2() means calculating the azimuth.
[0069] Assuming that the distance grid size of the grid map 301 is grid_range and the angle grid size is grid_theta, the coordinates (r, c) of point Q in the grid map 301 satisfy the following relationship:
[0070] r = theta / grid_theta,
[0071] c=range / grid_range.
[0072] The grid map 301 may be divided into a plurality of sector-shaped areas. Figure 4 The figure is a schematic diagram of a sector-shaped area in a grid map 301 .
[0073] like Figure 4 The angle of the fan-shaped area shown is the angle grid size grid_theta, and the distance of each grid is the distance grid size grid_range. Figure 4 The sector-shaped area shown includes a total of 8 grids.
[0074] The value of grid_theta can be set according to business needs or experience, and the angle value is less than 30°. For example, the angle of the sector area can be 0.5°, 1°, 2°, etc.
[0075] In some embodiments, the sensor can acquire point cloud data within a 360° range. In other embodiments, the sensor can also acquire point cloud data within other angle ranges, such as point cloud data within a 270° range or a 180° range.
[0076] Taking point cloud data within a 360° range as an example, if grid_theta is 2°, the grid map 301 can be divided into 180 sectors; if grid_theta is 1°, the grid map 301 can be divided into 360 sectors.
[0077] The value of grid_range can be set based on business needs or experience. The value of grid_range can be less than 5 meters. For example, it can be 0.5 meters, 2 meters, 2 meters, etc.
[0078] In some embodiments, the distance from the point farthest from the sensor in the acquired point cloud data to the sensor may be 50 meters, 70 meters, or 90 meters.
[0079] For ease of description, the following uses Figure 5 Represents a partial sector in the grid map 301 . Figure 5 9 columns of grids are shown. Each column of the 9 columns of grids corresponds to a sector area in the grid map 301. For example, Figure 5 The second grid column (i.e., the grid column indicated by the arrow) can be equivalent to Figure 4 The fan-shaped area shown.
[0080] like Figure 5 The solid dots in each grid represent points in the point cloud data. For example, the first row and first column of the grid contains three solid dots, which means that the grid contains three points in the point cloud data.
[0081] For ease of description, it is assumed below that the grid map 301 includes a total of P sector areas, where P is a positive integer greater than or equal to 2.
[0082] Step 302: Determine reference grids in P sector-shaped areas.
[0083] If the height difference between the highest and lowest points in a grid is less than the threshold Th1, the grid is considered the reference grid. The road surface is not perfectly flat. It may become uneven due to factors such as age and disrepair. Therefore, while some points in the grid may differ in height, they are all on the ground. Therefore, if the height difference between the highest and lowest points in a grid is less than Th1, the points in the grid can be considered to be located on a single plane.
[0084] The value of Th1 can be set as needed, for example, 0.2 meters, 0.15 meters, or 0.12 meters.
[0085] If a grid contains only one point, it can be determined that this grid is not a reference grid.
[0086] After executing step 302, the reference grid included in grid map 301 can be determined. For ease of description, the points in this reference grid are referred to as first-class fitting points. Assume that the P sector areas include a total of α first-class fitting points, where α is a positive integer greater than or equal to 2.
[0087] Step 303: Perform plane fitting using the α first-category fitting points to obtain a fitting plane.
[0088] The method for determining the fitting plane may be some commonly used plane fitting methods, for example, the fitting plane may be obtained by least square method, singular value decomposition (SVD) and the like.
[0089] Step 304 : Determine the distance between each point in the j-th sector area and the fitting plane, and select points whose distance to the fitting plane is less than a threshold Th2 based on the determined distances, j=1, . . . , P.
[0090] The value of Th2 can be set as needed. For example, the value of Th2 can be 0.2 meters, 0.15 meters, or 0.12 meters. The value of Th2 can be the same as or different from the value of Th1.
[0091] For ease of description, the points in the jth sector whose distance to the fitting plane is less than the threshold Th2 can be referred to as second-type fitting points. The first-type fitting points are the points used to obtain the fitting plane. For ease of description, the jth sector below includes a total of β second-type fitting points. β is a positive integer greater than or equal to 3.
[0092] Step 305: Establish a Gaussian process regression model corresponding to the j-th sector region based on the β second type fitting points in the j-th sector region. For ease of description, the Gaussian process regression model corresponding to the j-th sector region will be referred to as Gaussian process regression model j below.
[0093] The key to the Gaussian regression process is to model Y given some values of X and assume that Y follows a joint normal distribution. The plane coordinates of the β second-type fitting points in the Cartesian coordinate system can be expressed as G(x0,y0), G(x1,y1), G(x2,y2), ..., G(x β ,y β ). Assuming that the β second-type fitting points obey the joint normal distribution N(u,σ), the following relationship is satisfied:
[0094]
[0095] km,n=K(xm,xn) is a kernel function used to represent the similarity measure of (xm,xn). Commonly used kernel functions include linear kernel function and Gaussian kernel function. The value range of m and n is 1 to β.
[0096] Step 306 : Gaussian process regression model j may be used to determine whether the point in the j-th sector area that does not belong to the second type of fitting point is a reference plane point.
[0097] For ease of description, the points in the jth sector area that do not belong to the second type of fitting points are referred to as pending points. Assume that the jth sector area includes δ pending points, where δ is a positive integer greater than or equal to 1.
[0098] Using Gaussian regression model j, determine the predicted value in the y direction for each of the δ undetermined points. If the difference between the predicted value in the y direction and the actual value of a certain undetermined point is less than a threshold value Th3, the undetermined point can be determined to be a reference plane point. If the difference between the predicted value in the y direction and the actual value of a certain undetermined point is not less than the threshold value Th3, the undetermined point can be determined to be a non-reference plane point.
[0099] Assuming that the coordinate value of the predicted point is (xt, yt, zt), and the predicted value is (xt, ypred, zypred), then G(x0, y0), G(x1, y1), G(x2, y2), ..., G(x β,y β ), G(xt,yt) conforms to the joint normal distribution:
[0100]
[0101] make:
[0102]
[0103] zpred follows the normal distribution N(ut,σt), where:
[0104]
[0105]
[0106] In step 307, the reference plane points in the j-th sector are determined to be the second-category fitting points in the j-th sector and the reference plane points determined in step 306. Accordingly, points other than the reference plane points are non-reference plane points. In other words, points other than the second-category fitting points and the reference plane points determined in step 306 in the j-th sector are non-reference plane points.
[0107] Reference plane points are points in the point cloud data that belong to the reference plane. For example, points located on the ground. Non-reference plane points are points in the point cloud data that do not belong to the reference plane. For example, points above the ground are non-reference plane points.
[0108] Steps 304 to 307 may be repeated until non-reference plane points in P sector-shaped areas are determined to obtain a set of non-reference plane points.
[0109] In other embodiments, the first type of fitting points contained in the j-th sector area among the P sector areas can be used to establish a Gaussian process regression model j, and the established Gaussian process regression model j can be used to determine whether the points in the j-th sector area that are not the first type of fitting points are reference plane points. In other words, in this embodiment, it is not necessary to perform Figure 3 Instead of executing step 303 and step 304 as shown, step 305 is executed directly after executing step 302, and step 305 is used to determine that the fitting point of the Gaussian process regression model j is the first type of fitting point.
[0110] The fitting plane in step 303 is determined based on P sector areas (i.e., including all point cloud data). In other embodiments, a fitting plane can be obtained using part of the point cloud data, and another part of the fitting plane can be obtained using another part of the point cloud data. For example, assuming that the point cloud data obtained in step 301 is point cloud data within a 360° range, the point cloud data can be divided into two parts: a first part of point cloud data and a second part of point cloud data, wherein the first part of the point cloud data is point cloud data within a range of 0° to 180°, and the second part of the point cloud data is point cloud data within a range of 181° to 360°. In this case, a fitting plane (which can be called fitting plane 1) can be obtained using the first part of the point cloud data, and another fitting plane (which can be called fitting plane 2) can be obtained using the second part of the point cloud data. If a sector area among the P sector areas is within the range of the first part of the point cloud data, then the second type of fitting point in the sector area is determined based on the distance to the fitting plane 1. Similarly, if a sector-shaped area among the P sector-shaped areas is within the range of the second portion of point cloud data, then the second type of fitting points in the sector-shaped area are determined based on the distance to the fitting plane 2 .
[0111] In the above embodiment, all point cloud data is divided into two parts, and then fitted separately to obtain two fitting planes. In other embodiments, the point cloud data can also be divided into three or more parts, and then fitted separately to obtain fitting planes.
[0112] The specific determination method of each fitting plane in the multiple fitting planes is similar to step 303. For example, the reference grid can be determined based on the height and threshold of the points in the grid, and the points in the reference grid are used for fitting to obtain the fitting plane. For different parts of the point cloud data, the threshold used to determine the reference grid can be the same or different. Taking fitting plane 1 and fitting plane 2 as an example, in some embodiments, as long as the height difference from the highest point to the lowest point in a grid is less than 0.2 meters, the grid can be determined to be a reference grid. In other embodiments, if the height difference from the highest point to the lowest point in the grid is less than 0.2 meters in the range of 0° to 180°, the grid can be used as a reference grid; if the height difference from the highest point to the lowest point in the grid is less than 0.1 meters in the range of 181° to 360°, the grid can be used as a reference grid.
[0113] The ground may not be a perfect plane. For example, the ground may have upslopes or downslopes, or sudden protrusions. If the ground is assumed to be a plane, it is possible that some of the identified non-ground points are actually ground points. The above embodiment assumes that the points on the reference plane follow a Gaussian distribution, which is more consistent with the actual road surface. Using a Gaussian process regression model, ground points that are mistakenly identified as non-ground points can be screened out, thereby increasing the robustness of the algorithm.
[0114] In other embodiments, the first type of fitting points in step 302 may be directly determined as reference plane points, and points that do not belong to the first type of fitting points may be determined as non-reference plane points.
[0115] In other embodiments, the second type of fitting points determined in step 304 may be determined as reference plane points, and points that do not belong to the second type of fitting points may be determined as non-reference plane points.
[0116] The following combination Figure 6 The process of determining multiple objects using the non-reference plane points included in the non-reference plane point set (ie, step 203 ) is described below.
[0117] Figure 6 This is a schematic flowchart of a method for processing point cloud data provided according to an embodiment of the present application.
[0118] Step 601: Determine a first non-reference plane point set.
[0119] use Figure 3 The method shown can filter out reference plane points that are located on the reference plane. Accordingly, points other than the reference plane points are non-reference plane points. The set of points consisting of all non-reference plane points can be called the first non-reference plane point set.
[0120] Step 602: Determine the points in the first non-reference plane point set whose heights are less than a threshold TH4 to form a second non-reference plane point set.
[0121] In some application scenarios, very tall points generally do not interfere with the target device. For example, in autonomous driving scenarios, excessively tall objects do not affect the target vehicle's automatic navigation. For example, when a target vehicle crosses under an overpass, the overpass and the vehicles on it do not affect its movement. Therefore, non-reference plane points with heights greater than a preset threshold can be filtered out, reducing the number of points required for processing and speeding up point cloud data processing.
[0122] The preset threshold TH4 can be selected based on different scenario requirements. For example, in the case of an autonomous vehicle, the value of TH4 can be 5 meters, 6 meters, or 7 meters. In the case of an autonomous vehicle with a low-height target device such as a robot vacuum or mop, the value of TH4 can be 70 centimeters, 80 centimeters, etc.
[0123] Step 602 is an optional step. In other words, in other embodiments, step 602 may not be required. If step 602 is not required, the non-reference flat point set processed in the following steps is the first non-reference flat point set determined in step 601. However, for ease of description, the following steps are described assuming that step 602 has been performed.
[0124] In step 603, a grid map is determined based on the second non-reference plane point set. The grid map may be a grid map based on a Cartesian coordinate system. For ease of description, the grid map determined in step 603 is referred to as grid map 603 below.
[0125] Step 604 : Determine a binary image corresponding to the grid map 603 .
[0126] Each pixel in a binary image has a value of 1 or 0. The grids in grid map 603 correspond one-to-one to the pixels in the binary image. In other words, if grid map 603 includes m×n grids, then the binary image corresponding to grid map 603 includes m×n pixels, where m and n are positive integers greater than or equal to 1. The grid in the first row and first column of the m×n grids corresponds to the pixel in the first row and first column of the m×n pixels, and the grid in the first row and second column of the m×n grids corresponds to the pixel in the first row and second column of the m×n pixels.
[0127] In some embodiments, if a grid in the grid map 603 includes at least one point belonging to the second non-reference plane point set, the pixel value corresponding to the grid is 1. If a grid does not include a point belonging to the second non-reference plane point set, the pixel value corresponding to the grid is 0.
[0128] In other embodiments, if a grid in the grid map 603 includes at least one point belonging to the second non-reference plane set, the pixel value corresponding to the grid is 0. If a grid does not include a point belonging to the second non-reference plane set, the pixel value corresponding to the grid is 1.
[0129] For example, Figure 7 (a) in FIG. 6 is a schematic diagram of a grid map 603 . Figure 7 (b) in the figure corresponds to Figure 7 The binary image of the grid map 603 shown in (a) in FIG. Figure 7 The solid circle in the grid map 603 shown in (a) represents a point belonging to the second non-reference plane. If the pixel value is 1, then the pixel is black; if the pixel value is 0, then the pixel is white. It can be seen that Figure 7In the grid map 603 shown in (a), the pixels corresponding to the grid including points in the non-reference plane set are black.
[0130] Step 605 : Segment the binary image based on the distance from the target pixel to the preset position to determine the object.
[0131] The target pixel is a pixel in the binary image corresponding to a grid containing non-reference plane points. The preset location can be the location of a sensor used to detect and scan point cloud data. The preset location can also be the location of a target device, such as the location of a car logo on the front bumper of a vehicle or the center of the vehicle.
[0132] The adaptive segmentation parameters used to segment point cloud data are related to the distance between the target pixel and the preset location. Therefore, the distance between the target pixel and the preset location can be used to determine the corresponding segmentation parameters. Points are then grown using the determined segmentation parameters to identify the object. The segmentation parameters can be a search radius used in the growing process.
[0133] The farther the distance between the target pixel and the preset position, the larger the search radius. The corresponding relationship between the search radius and the distance between the target pixel and the preset position can be set according to business needs or experience.
[0134] For example, in some embodiments, if the distance from the target pixel to the preset position is less than 20 meters, the search radius may be one grid; if the distance from the target pixel to the preset position is greater than or equal to 20 meters and less than 40 meters, the search radius may be two grids; if the distance from the target pixel to the preset position is greater than or equal to 40 meters, the search radius may be three grids.
[0135] For example, in other embodiments, if the distance from the target pixel to the preset position is less than 20 meters, the search radius may be one grid; if the distance from the target pixel to the preset position is greater than or equal to 20 meters and less than 60 meters, the search radius may be two grids; if the distance from the target pixel to the preset position is greater than or equal to 60 meters, the search radius may be three grids.
[0136] Optionally, in some embodiments, before executing step 605, morphological processing may be performed on the binary image determined in step 604 to reduce noise and under-segmented pixels in the binary image. For example, erosion and dilation may be performed on the binary image in sequence. Another example is that an opening operation and a closing operation may be performed on the binary image in sequence. Another example is that a hole filling operation may be performed on the binary image.
[0137] Next, combine Figure 8 Describe the clustering process in detail. Figure 8 The corresponding Figure 7FIG. 6 is a schematic diagram of a binary image of a grid map 603 shown in (a). Figure 8 The pixels marked with Arabic numerals in the binary image shown are Figure 7 In (b), the pixel value is 1, and the pixel without Arabic numeral mark is Figure 7 The pixel value in (b) is 0. In other words, Figure 8 The pixels marked with Arabic numerals in the binary image are target pixels. Figure 8 The pixel marked with Arabic numeral 1 is referred to as pixel 1, the pixel marked with Arabic numeral 2 is referred to as pixel 2, and so on.
[0138] Select any one of the multiple target pixels as a seed pixel. Determine a first search radius based on the distance from the seed pixel to a preset position. Perform growth based on the seed pixel and the first search radius to obtain an object.
[0139] For example, suppose Figure 8 The pixel 12 in the image is the seed pixel. Assume that the value of the first search radius determined from the pixel 12 to the preset position is 1. In this case, it can be determined whether the target pixel is included in the 8 pixels adjacent to the pixel 12. Figure 8 As shown, four of the eight pixels adjacent to pixel 12 are target pixels. These four pixels are pixel 11, pixel 13, pixel 14, and pixel 15. It is determined that these four pixels and pixel 12 belong to the same object. Then, it is determined whether the pixels adjacent to these four pixels include target pixels other than the already determined target pixel. Figure 8 As shown, the pixels adjacent to pixel 11, in addition to the already determined pixels 12 and 14, also include a target pixel, namely pixel 10. Except for pixel 11, the pixels adjacent to pixels 13, 14, and 15 do not include the target pixel. In this case, growth is completed with pixel 12 as the seed pixel, resulting in an object comprising pixels 10 to 15. For ease of description, the object comprising pixels 10 to 15 will be referred to as object 1.
[0140] After an object is identified, the binary image is further determined to see if there are any target pixels that do not belong to the object. If there are no target pixels that do not belong to the object, the growth process is complete. If the binary image still contains one or more target pixels that do not belong to the object, a target pixel is determined from the remaining target pixels and used as a seed pixel to continue the growth process.
[0141] Also Figure 8For example, after object 1 is determined, the binary image also includes 9 target pixels. In this case, any one of the 9 target pixels can be determined as a seed pixel. For example, suppose pixel 3 is determined to be a seed pixel. According to the distance from pixel 3 to the preset position, the second search radius is determined. The distance from the seed pixel to the preset position is positively correlated with the value of the search radius. In other words, the closer the distance from the seed pixel to the preset position, the smaller the value of the search radius; the farther the distance from the seed pixel to the preset position, the larger the value of the search radius. Figure 8 As shown, the distance from pixel 3 to the preset position is greater than the distance from pixel 12 to the preset position. Therefore, the second search radius can be greater than the first search radius. Assume that the second search radius is 2. In this case, it can be determined whether the target pixel is included in the range of 2 as the search radius with pixel 3 as the center. If the target pixel is included, then the target pixel and pixel 3 belong to the same object. Figure 8 As shown in the figure, with pixel 3 as the center and a search radius of 2, there are 8 target pixels, namely pixel 1, pixel 2, pixel 4, pixel 5, pixel 6, pixel 7, pixel 8 and pixel 9. Therefore, it can be determined that pixels 1 to 9 belong to the same object. Except for pixels 1 to 9, there are no other target pixels within the search radius of 2 with any one of pixels 1 to 9 as the center. Therefore, the growth with pixel 3 as the seed pixel is completed, and another object is obtained. This object includes pixels 1 to 9. For the convenience of description, the object including pixels 1 to 9 is called object 2.
[0142] In addition to the target pixels included in Object 1 and Object 2, Figure 8 There are no other target pixels in . Therefore, the growing is complete.
[0143] The above technical solution can automatically adjust the segmentation parameters based on the distance between the target pixel and the preset position, thereby segmenting the point cloud data using adaptive segmentation parameters (i.e., the search radius) to obtain multiple objects. This can improve segmentation performance and increase the accuracy of object recognition. In addition, the above embodiment uses binary images to determine objects. This can increase the determination speed and enable morphological processing to reduce noise and under-segmented pixels in the binary image.
[0144] In other embodiments, it is not necessary to determine a binary image corresponding to grid map 603, and instead, grid map 603 may be used directly for growth. In this case, a grid including points in the second non-reference plane point set can be used as a seed grid for growth. The specific implementation is similar to the process of growing using target pixels as seed pixels and will not be described here for the sake of brevity. When directly growing an object using a grid, the search radius can be determined based on the distance from any point in the seed grid to a preset position.
[0145] Figure 6 The method shown does not take into account the height information of the points. In other words, Figure 6 In the method shown, the heights of multiple points in the same grid may vary greatly. For example, the heights of three points in a grid may be 0.1 meters, 1 meter, and 2.5 meters respectively. However, these three points may not belong to the same object. Therefore, according to Figure 6 The method shown may cause under-segmentation. To solve this problem, multiple grid maps can be determined based on the height information of the point. The multiple grid maps correspond to points of different heights, and at least one object is obtained by growing along the height direction according to the multiple grid maps. Figure 9 and Figure 10 Describe it in terms of growth based on height information.
[0146] Figure 9 This is another method for determining multiple objects (ie, step 203 ) using the non-reference planar points included in the non-reference planar point set.
[0147] Figure 9 This is a schematic flowchart of a method for processing point cloud data provided according to an embodiment of the present application.
[0148] Step 901: Determine a plurality of grid maps based on a first non-reference plane point set.
[0149] The plurality of grid maps correspond one-to-one to points at a plurality of heights. In other words, each grid map in the plurality of grid maps corresponds to a point at a height, and different grid maps in the plurality of grid maps correspond to points at different heights.
[0150] For example, the first non-reference plane point set can be divided into multiple non-reference plane point subsets (hereinafter referred to as "subsets") based on the height information of the points, each subset consisting of points with the same height. The points with the same height referred to here are points whose heights fall within the same range.
[0151] For example, the first non-reference plane point set can be divided into five subsets, namely subset 1, subset 2, subset 3, subset 4, and subset 5. Subset 1 consists of non-reference plane points with a height less than or equal to 1.5 meters; subset 2 consists of points with a height greater than 1.5 meters and less than or equal to 2.5 meters; subset 3 consists of points with a height greater than 2.5 meters and less than or equal to 3.5 meters; subset 4 consists of points with a height greater than 3.5 meters and less than or equal to 4.5 meters; and subset 5 consists of points with a height greater than 4.5 meters and less than or equal to 5.5 meters. Points with a height greater than 5.5 meters are ignored.
[0152] It is understandable that the above subsets 1 to 5 are only intended to help those skilled in the art how to divide the non-reference plane points into different subsets according to the height information of the points, and are not intended to limit how to divide the subsets. In other embodiments, the first non-reference plane point can be divided into subsets greater than 5 or less than 5. For example, it can be 2, 3, 9 or 15, etc. Points that are too high may not be ignored. For example, the points included in the subset with the highest height among multiple subsets may be all points greater than a value. For example, subset x includes all points with a height greater than 5 meters. The height ranges of different subsets may also not be fixed values. For example, subset 1 consists of non-reference plane points with a height less than or equal to 1.5 meters; subset 2 consists of points with a height greater than 1.5 meters and less than or equal to 2.5 meters; subset 3 consists of points with a height greater than 2.5 meters and less than or equal to 5 meters.
[0153] For ease of description, the following embodiments assume that the first non-reference plane point set is divided into three subsets: subset 1, subset 2, and subset 3. The heights of the points included in subset 1 are smaller than the heights of the points included in subset 2, and the heights of the points included in subset 2 are smaller than the heights of the points included in subset 3.
[0154] A grid map can be determined based on the points included in subset 1. For ease of description, the grid map can be referred to as a grid map. Figure 3 _1.
[0155] A grid map can be determined based on the points included in subset 2. For ease of description, the grid map can be referred to as a grid map. Figure 3 _2.
[0156] A grid map can be determined based on the points included in subset 3. For ease of description, the grid map can be referred to as a grid map. Figure 3 _3.
[0157] Step 902: Determine at least one reference object included in the seed grid map.
[0158] The seed grid map is the one with the lowest height among the multiple grid maps. Figure 3 _1. Grid land Figure 3 _2 and grid ground Figure 3 _3 as an example, the seed grid map is a grid map Figure 3 _1.
[0159] Assume that the total number of grid maps determined in step 902 is M, where M is a positive integer greater than or equal to 2. Then the M grid maps can be respectively referred to as grid maps Figure 1 , grid ground Figure 2 ... Grid Map M. Grid Map Figure 1 The height of the points in the grid is less than Figure 2 The height of the points in the grid Figure 2 The height of the points in the grid is less than Figure 3 In other words, the height of a point in grid map m is less than the height of a point in grid map m+1, where m=1, 2, ... M-1. Figure 1 is the seed grid map. Figure 2 Can be called grid ground Figure 1 The upper layer of the grid map, grid map Figure 3 Can be called grid ground Figure 2 The upper layer of raster map, and so on.
[0160] Method for determining reference objects in the target grid map Figure 6 The method shown is the same and will not be described again here for the sake of brevity.
[0161] Step 903 : Taking each reference object in the at least one reference object included in the seed grid map as a seed region, growing along the height direction to obtain N objects.
[0162] The following combination Figure 10 Describes growth along the height direction.
[0163] Figure 10 is a schematic diagram of three binary images. Figure 3 The binary image 3_1 shown is based on the grid Figure 3 _1 determines the binary image, and the binary image 3_2 is determined by the grid Figure 3 _2 determines the binary image, and the binary image 3_3 is based on the grid Figure 3 _3 determines the binary image. The pixel value of the target pixel in each binary image from binary image 3_1 to binary image 3_3 is 1. The height growth process can be completed based on the binary image corresponding to the grid map.
[0164] like Figure 10 As shown, each binary image in binary images 3_1 to 3_3 includes multiple target pixels. For example, the target pixels in binary image 3_1 include pixel 1.1, pixel 1.2, pixel 1.3, pixel 1.4, pixel 1.5, pixel 1.6, and pixel 1.7. The target pixels in binary image 3_2 include pixel 2.3 and pixel 2.4. The target pixels in binary image 3_3 include pixel 3.3, pixel 3.4, pixel 3.5, pixel 3.6, pixel 3.7, pixel 3.8, and pixel 3.9.
[0165] Grid Land Figure 3_1 is a seed grid map. Therefore, at least one reference object can be determined based on the binary image 3_1, and each reference object in the at least one reference object is used as a seed region to grow along the height direction.
[0166] Assume that two reference objects are identified in binary image 3_1: reference object 1 and reference object 2. Reference object 1 consists of pixels 1.1, 1.2, and 1.3. Reference object 2 consists of pixels 1.4, 1.5, 1.6, and 1.7.
[0167] During the growth process along the height direction, at least one reference region may be determined from the binary image corresponding to the upper-level raster map. The at least one reference region corresponds one-to-one with the at least one reference object. The pixels included in each reference region have the same coordinates on the x-axis and y-axis as the pixels included in the corresponding reference object.
[0168] For example, two reference regions can be determined in binary image 3_2, namely reference region 1 and reference region 2. Reference region 1 corresponds to reference object 1, and reference region 2 corresponds to reference object 2. Reference region 1 includes pixel 2.1, pixel 2.2, and pixel 2.3. Reference region 2 includes pixel 2.5, pixel 2.6, pixel 2.7, and pixel 2.8.
[0169] Using a pixel in the reference area as a seed, growth is performed within the binary image to determine whether an object is contained within the growth range. If an object is contained within the growth range, it is determined that the contained object and the reference object are the same object. If there is no object within the growth range, another pixel in the reference area is used as a seed to grow within the binary image to determine whether an object is contained within the growth range, and so on. Optionally, the radius of growth can be the same as the radius used when determining the corresponding reference object. If another pixel in the reference area is used in the process of growing using a pixel in the reference area, it is not necessary to use the other pixel for growth.
[0170] Also Figure 10For example. For reference area 1, pixel 2.1 can be used as a seed for growth. Assuming that the growth radius of reference object 1 is 1, the radius of growth with pixel 2.1 as a seed can also be 1. There is no target pixel (i.e., a pixel with a pixel value of 1) within the growth radius of pixel 2.1. Then, pixel 2.2 can be used as a seed for growth. Growing with pixel 2.2 can obtain an object (which can be called candidate object 1), and the candidate object includes pixel 2.3 and pixel 2.4. Pixel 2.3 is used in the process of growing with pixel 2.2. Therefore, it is not necessary to grow again with pixel 2.3 as a seed. Therefore, it can be determined that the binary image 3_2 contains candidate object 1, and candidate object 1 and reference object 1 belong to the same object.
[0171] For reference region 2, growth can be performed at pixel 2.5 to pixel 2.8. It can be seen that no object is found when growing at any of the pixel ranges from 2.5 to 2.8. Therefore, it can be determined that binary image 3_2 does not include a candidate object that is the same object as reference object 1.
[0172] Since binary image 3_2 only includes one candidate object belonging to the reference object, a reference region can be determined in binary image 3_3. This reference region corresponds to candidate object 1 in binary image 3_2. This reference region consists of two pixels. The positions of these two pixels in the x-axis and y-axis directions are identical to the positions of the two pixels in candidate object 1 in the x-axis and y-axis directions. The reference region in binary image 3_3 consists of pixel 3.1 and pixel 3.2.
[0173] Similarly, by growing pixel 3.2, we can obtain an object (referred to as candidate object 2). Candidate object 2 includes pixel 3.3 and pixel 3.4. Pixel 3.1 was used in the process of growing pixel 3.2. Therefore, we do not need to grow again using pixel 3.1 as a seed. Therefore, we can determine that binary image 3_3 contains candidate object 2, and candidate object 2 and reference object 1 are the same object.
[0174] In addition, the binary image 3_3 also includes five target pixels (i.e., pixel 3.5 to pixel 3.9). These five target pixels do not belong to candidate object 2. Therefore, growth can be performed using the first of these five target pixels as a seed. The result of the growth is that these five target pixels can be an object.
[0175] In summary, growing the two reference objects in binary image 3_1 along the height direction yields three objects: object 1, object 2, and object 3. Object 1 includes pixels 1.4 to 1.7, and object 2 includes pixels 3.5 to 3.9. Object 3 includes pixels 1.1, 1.2, 1.3, 2.3, 2.4, 3.3, and 3.4. Object 1 is identical to reference object 2. Object 3 consists of reference object 1, candidate object 1, and candidate object 2.
[0176] It can be seen that through the above steps, Figure 10 The non-reference plane point sets corresponding to the three binary images shown can be segmented into three objects.
[0177] Compare Figure 10 and Figure 7 It can be found that if the height information of the point is not considered, then the Figure 10 The three binary image points shown can determine a binary image and the binary image is Figure 7 For the same point cloud data, if the height information is not considered (i.e., according to Figure 7 The binary image shown in (b) in the figure can only get two objects, while considering the height information (i.e. according to Figure 10 After the binary image is obtained, three objects can be obtained.
[0178] It is understandable that in Figure 10 When introducing region growing as an example, the search range for whether there are pixels with the same coordinates only includes highly adjacent raster images. In other embodiments, the search range for whether there are pixels with the same coordinates can be larger. For example, the search range can be within the range of two or more adjacent raster images. Taking the above-mentioned subsets 1, 2, 3, 4, and 5 as an example, the search range for region growing the reference object in the raster image corresponding to subset 1 can include the raster images corresponding to subsets 2 and 3.
[0179] In accordance with Figure 6 or Figure 9 After the method shown determines multiple objects, it can also determine whether the multiple objects include objects that can be fused. If objects that can be fused are included, then the fusion operation is performed on the objects that can be fused. Figure 11 How to determine whether there are fused objects (ie, step 204) and how to refresh the object sequence (ie, step 205) are introduced.
[0180] Figure 11 This is a schematic flowchart of a method for processing point cloud data provided according to an embodiment of the present application.
[0181] Step 1101 : Determine whether each object in a plurality of objects has a related object in another point cloud data.
[0182] Figure 6 or Figure 9 The multiple objects in the illustrated method can all be considered to be determined based on the point cloud data of the current frame acquired in step 301. For ease of description, the point cloud data determined in step 301 can be referred to as point cloud data 1. The other point cloud data can be referred to as point cloud data 2. In other words, the multiple objects are determined based on point cloud data 1. Point cloud data 2 is the point cloud data acquired in the frame before point cloud data 1. For example, if point cloud data 1 is the point cloud data acquired in frame t1, then point cloud data 2 is the point cloud data acquired in frame t0. Frame t0 is the frame before frame t1. It is assumed that point cloud data 2 is the first point cloud data acquired.
[0183] For point cloud data 2, multiple objects can also be determined in the same manner as above. For ease of description, the following assumes that the objects determined based on point cloud data 2 are object 2.1, object 2.2, and object 2.3. It also assumes that the objects determined based on point cloud data 1 are object 1.1, object 1.2, object 1.3, and object 1.4.
[0184] If point cloud data 2 is the first point cloud data, then the object sequence shown in Table 1 can be established.
[0185] Table 1
[0186] Sequence number Object identification 1 2.1 2 2.2 3 2.3
[0187] As described above, point cloud data 2 includes three objects. Therefore, three object sequences can be created: object sequences numbered 1, 2, and 3. Each object sequence includes one object in point cloud data 2. For example, object sequence numbered 1 (object sequence 1) includes object 2.1, object sequence numbered 2 (object sequence 2) includes object 2.2, and object sequence numbered 3 (object sequence 3) includes object 2.3.
[0188] Step 1102: If at least two objects in the plurality of objects are associated with the same object in another point cloud data, the at least two objects are fused. If different objects in the plurality of objects are associated with different objects in another point cloud data, no fusion operation is required.
[0189] For example, the multiple objects determined based on point cloud data 1 and the multiple objects determined based on point cloud data 2 have the following association relationships: object 1.1 is associated with object 2.1, object 1.2 is associated with object 2.2, object 1.3 is associated with object 2.3, and object 1.4 is associated with object 2.3.
[0190] As can be seen, objects 1.3 and 1.4 are both associated with the same object. In this case, objects 1.3 and 1.4 can be fused to form a single object. For ease of description, the object formed by fusion of objects 1.3 and 1.4 can be referred to as object 1.3'.
[0191] Step 1103: Refresh the object sequence.
[0192] Objects with a related relationship can be considered to belong to the same object sequence. Therefore, the object sequence can be refreshed and the object determined in the current frame can be added to the corresponding sequence. For example, Table 2 shows the refreshed object sequence.
[0193] Table 2
[0194] Sequence number Object identification 1 1.1,2.1 2 1.2,2.2 3 1.3’,2.3
[0195] As mentioned above, object 1.1 is associated with object 2.1, so object 1.1 can be added to object sequence 1. Therefore, the refreshed object sequence 1 includes object 1.1 and object 2.1. Similarly, object 1.2 is associated with object 2.2, so object 1.2 can be added to object sequence 2. Object sequence 2 includes object 1.2 and object 2.2. Since object 1.3 and object 1.4 are both associated with object 2.3. Therefore, object 1.3 and object 1.4 are fused to obtain object 1.3'. In this case, the obtained object (i.e., object 1.3') can be added to object sequence 3. Therefore, the refreshed object sequence 3 includes object 1.3' and object 2.3.
[0196] Assume that point cloud data 3 is acquired in frame t2, and the objects determined based on point cloud data 3 include object 3.1, object 3.2, and object 3.3, and object 3.1 is associated with object 1.1, and object 3.2 is associated with object 1.2. Among the multiple objects determined in point cloud data 1, there is no object associated with object 3.3. In this case, object 3.1 can be added to sequence 1, object 3.2 can be added to sequence 2, and a new object sequence can be created (this object sequence can be numbered 4, referred to as object sequence 4). There is only one object in object sequence 4, namely object 3.3. In this case, the object sequence can be updated as shown in Table 3.
[0197] Table 3
[0198] Sequence number Object identification 1 1.1,2.1,3.1 2 1.2,2.2,3.2 3 1.3’,2.3 4 3.3
[0199] Object sequences with different numbers correspond to different objects. Objects belonging to the same object sequence are the same object. Take the four object sequences shown in Table 3 as an example. Each of the four object sequences can correspond to four objects. Object sequence 1 corresponds to object 1, object sequence 2 corresponds to object 2, object sequence 3 corresponds to object 3, and object sequence 4 corresponds to object 4.
[0200] Object 2.1 is object 1 determined based on the point cloud data acquired in frame t0, object 1.1 is object 1 determined based on the point cloud data acquired in frame t1, and object 3.1 is object 1 determined based on the point cloud data acquired in frame t2.
[0201] Similarly, object 2.2 is object 2 determined based on the point cloud data acquired in frame t0, object 1.2 is object 2 determined based on the point cloud data acquired in frame t1, and object 3.2 is object 2 determined based on the point cloud data acquired in frame t2. Object 2.3 is object 3 determined based on the point cloud data acquired in frame t0, object 1.3' is object 3 determined based on the point cloud data acquired in frame t1, and object 3.3 is object 4 determined based on the point cloud data acquired in frame t2.
[0202] In other words, Object 1 and Object 2 appear in frames t0 through t2. Object 3 appears in frames t0 and t1, but not in frame t2. Object 4 appears for the first time in frame t2.
[0203] This method can be used to re-identify objects that are actually the same object but were identified as two different objects as a single object. This can avoid over-segmentation, which can lead to inaccurate estimates of obstacle positions and speeds, which can cause difficulties in decision-making and planning.
[0204] Figure 12 This is a schematic flowchart of a method for processing point cloud data provided according to an embodiment of the present application.
[0205] Step 1201: Acquire the first point cloud data, which is the first frame of point cloud data collected by the sensor.
[0206] Step 1202 : segment the first point cloud data using adaptive segmentation parameters to obtain N objects, where N is a positive integer greater than or equal to 2.
[0207] Step 1203: Fuse the N objects according to preset rules.
[0208] Figure 12 The method shown can use adaptive segmentation parameters to further segment the point cloud data into multiple objects. The adaptive segmentation parameters can reduce the problems of low segmentation accuracy and poor segmentation performance caused by fixed segmentation parameters.
[0209] Optionally, in some embodiments, the first point cloud data is segmented using adaptive segmentation parameters to obtain N objects, including: determining a reference distance, which is used to indicate the distance from a point in the first point cloud data to a preset position; determining at least one segmentation parameter based on the correspondence between the reference distance and the adaptive segmentation parameter; and growing according to the at least one segmentation parameter to obtain the N objects.
[0210] The segmentation parameters can be as follows Figure 6 The search radius as described in the method shown.
[0211] Optionally, in some embodiments, the N objects are fused according to preset rules, including: determining the association relationship between each object of the N objects and an object in the second point cloud data, wherein the second point cloud data is point cloud data of a second frame collected by the sensor, and the second frame is the previous frame of the first frame; if at least two objects of the N objects are associated with the same object in the second point cloud data, then the at least two objects are fused.
[0212] Optionally, in other embodiments, the N objects are fused according to a preset rule, including: determining whether the N objects include two objects whose distance is less than a preset threshold; if so, the two objects may be fused.
[0213] Optionally, in some embodiments, the method further includes: determining a first point cloud set from the first point cloud data, the first point cloud set consisting of non-reference plane points in the point cloud data; determining a first grid map based on the first point cloud set; determining the reference distance includes: determining the distance from the target grid in the first grid map to the preset position as the reference distance, wherein the target grid is a grid containing points.
[0214] Optionally, in other embodiments, the reference distance may be the distance from any point in the target grid in the first grid map to the preset position.
[0215] Optionally, in other embodiments, the reference distance may be an average distance from a plurality of points included in the target grid in the first grid map to the preset position.
[0216] Optionally, in some embodiments, determining the first raster map based on the first point cloud set includes: determining M raster maps based on the first point cloud set, wherein the M raster maps correspond to points at M heights, respectively; and determining the first raster map from the M raster maps, wherein the height of the point corresponding to the first raster map is less than the height of the point corresponding to another raster map in the M raster maps, where M is a positive integer greater than or equal to 2. The M raster maps may be raster maps based on a Cartesian coordinate system.
[0217] Optionally, in some embodiments, the growing is performed according to the segmentation parameter to obtain the N objects, including: determining the reference objects included in the first grid map according to the target grid in the first grid map and the at least one segmentation parameter; taking each reference object included in the first grid map as a seed area, and performing regional growth along the height direction according to the target grid in the grid map other than the first grid map in the M grid maps to obtain the N objects.
[0218] Optionally, in some embodiments, a binary image corresponding to the first grid map may be determined, and the N objects may be determined using the determined binary image.
[0219] Optionally, in some embodiments, determining the reference object included in the first grid map based on the target grid in the first grid map and the at least one segmentation parameter includes: growing according to the first target grid and the first segmentation parameter to obtain a first reference object, wherein the first target grid is one of the multiple target grids included in the first grid map, and the first segmentation parameter corresponds to the distance from the first target grid to the preset position; if at least one target grid among the multiple target grids does not belong to the first reference object, growing according to the second target grid and the second segmentation parameter to obtain a second reference object, wherein the second target grid is another one of the multiple target grids included in the first grid map, and the second target grid does not belong to the first reference object, and the second segmentation parameter corresponds to the distance from the second target grid to the preset position.
[0220] Optionally, in some embodiments, determining the first point cloud set from the first point cloud data includes: determining a second grid map based on the first point cloud data, the second grid map being a grid map based on polar coordinates, the second grid map including P sector areas, where P is a positive integer greater than or equal to 2; determining a reference grid constituting the P sector areas, wherein the height difference between the highest point and the lowest point in the reference grid is less than a second preset threshold value, j=1,…,P; performing plane fitting based on the points in the reference grid in the P sector areas to obtain a fitting plane; determining the P sector areas. A point in the j-th sector-shaped area whose distance to the fitting plane is less than a third threshold is a fitting point; a Gaussian process regression model corresponding to the j-th sector-shaped area is established according to the fitting points in the j-th sector-shaped area; according to the Gaussian regression model corresponding to the j-th sector-shaped area, whether each non-fitting point in the j-th sector-shaped area is a reference plane point is determined; and points in the j-th sector-shaped area other than the reference plane point among the non-fitting points and the fitting points in the j-th sector-shaped area are determined as non-reference plane points included in the j-th subset in the first point cloud set.
[0221] The specific implementation of the above point cloud data segmentation process, fusion process, non-reference plane point determination process, etc. can be found in Figures 2 to 11 For the sake of brevity, the description in [1] is omitted here.
[0222] Combined with the above Figures 1 to 12 , describes in detail the method for processing point cloud data provided by the embodiment of the present application, and will be combined with Figures 13 and 14 , describing a point cloud data processing device and a computing device provided according to an embodiment of the present application.
[0223] Figure 13 : is a schematic structural block diagram of a computing device provided according to an embodiment of the present application. Figure 13 The computing device 1300 shown includes an acquisition unit 1301 , a processing unit 1302 and a fusion unit 1303 .
[0224] The acquiring unit 1301 is configured to acquire first point cloud data, where the first point cloud data is point cloud data of a first frame collected by a sensor.
[0225] The processing unit 1302 is configured to segment the first point cloud data acquired by the acquisition unit 1301 using an adaptive segmentation parameter to obtain N objects, where N is a positive integer greater than or equal to 2.
[0226] The fusion unit 1303 is configured to fuse the N objects determined by the processing unit 1302 according to a preset rule.
[0227] Optionally, in some embodiments, the processing unit 1302 is specifically used to: determine a reference distance, which is used to indicate the distance from a point in the first point cloud data to a preset position; determine at least one segmentation parameter based on the correspondence between the reference distance and the adaptive segmentation parameter; and perform growth based on the at least one segmentation parameter to obtain the N objects.
[0228] Optionally, in some embodiments, the fusion unit 1303 is specifically used to: determine the association relationship between each object of the N objects and the object in the second point cloud data, wherein the second point cloud data is the point cloud data of the second frame collected by the sensor, and the second frame is the previous frame of the first frame; if at least two objects of the N objects are associated with the same object in the second point cloud data, then the at least two objects are fused.
[0229] Optionally, in some embodiments, the processing unit 1302 is further used to determine a first point cloud set from the first point cloud data, where the first point cloud set is composed of non-reference plane points in the point cloud data; and to determine a first grid map based on the first point cloud set; the processing unit 1302 is specifically used to determine the distance from the target grid in the first grid map to the preset position as the reference distance, where the target grid is a grid containing points.
[0230] Optionally, in some embodiments, the processing unit 1302 is specifically used to: determine M grid maps based on the first point cloud set, wherein the M grid maps correspond to points of M heights respectively; determine the first grid map from the M grid maps, the height of the point corresponding to the first grid map is less than the height of the point corresponding to other grid maps in the M grid maps, and M is a positive integer greater than or equal to 2.
[0231] Optionally, in some embodiments, the processing unit 1302 is specifically used to: determine the reference objects included in the first grid map based on the target grid in the first grid map and the at least one segmentation parameter; take each reference object included in the first grid map as a seed area, and perform region growth along the height direction based on the target grid in the grid maps other than the first grid map in the M grid maps to obtain the N objects.
[0232] Optionally, in some embodiments, the processing unit 1302 is specifically used to: grow according to the first target grid and the first segmentation parameter to obtain a first reference object, wherein the first target grid is one of the multiple target grids included in the first grid map, and the first segmentation parameter corresponds to the distance from the first target grid to the preset position; if at least one target grid among the multiple target grids does not belong to the first reference object, grow according to the second target grid and the second segmentation parameter to obtain a second reference object, wherein the second target grid is another one of the multiple target grids included in the first grid map, and the second target grid does not belong to the first reference object, and the second segmentation parameter corresponds to the distance from the second target grid to the preset position.
[0233] Optionally, in some embodiments, the processing unit 1302 is specifically configured to: determine a second grid map based on the first point cloud data, the second grid map being a grid map based on polar coordinates, the second grid map including P sector areas, where P is a positive integer greater than or equal to 2; determine a reference grid constituting the P sector areas, where the height difference between the highest point and the lowest point in the reference grid is less than a second preset threshold, j=1,…,P; perform plane fitting based on the points in the reference grid in the P sector areas to obtain a fitting plane; determine the points in the P sector areas; The points in the j-th sector-shaped area whose distance to the fitting plane is less than a third threshold are fitting points; a Gaussian process regression model corresponding to the j-th sector-shaped area is established based on the fitting points in the j-th sector-shaped area; based on the Gaussian regression model corresponding to the j-th sector-shaped area, it is determined whether each non-fitting point in the j-th sector-shaped area is a reference plane point; and the points in the j-th sector-shaped area other than the reference plane point in the non-fitting point and the fitting points in the j-th sector-shaped area are determined as non-reference plane points included in the j-th subset of the first point cloud set.
[0234] It should be understood that the computing device 1300 of the embodiment of the present application can be implemented by an application-specific integrated circuit (ASIC) or a programmable logic device (PLD), and the PLD can be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) or any combination thereof. It can also be implemented by software. Figures 2 to 12 When the data processing method is shown, the computing device 1300 and its various modules may also be software modules.
[0235] The computing device 1300 according to the embodiment of the present application may be configured to execute the method described in the embodiment of the present application, and the above and other operations and / or functions of each unit in the computing device 1300 are respectively for implementing Figures 2 to 12 For the sake of brevity, the corresponding processes of each method in are not repeated here.
[0236] Figure 14 It is a structural block diagram of a computing device provided according to an embodiment of the present application. Figure 14 The computing device 1400 shown includes: a processor 1401 , a memory unit 1402 , and a storage medium 1403 .
[0237] The processor 1401 , the memory unit 1402 , and the storage medium 1403 may communicate with each other via a bus 1404 .
[0238] The processor 1401 is the control center of the computing device 1400, providing sequencing and processing facilities for executing instructions, performing interrupt actions, providing timing functions and other functions. Optionally, the processor 1401 includes one or more central processing units (CPUs). Figure 14 CPU 0 and CPU 1 shown. Optionally, computing device 1400 includes multiple processors. Processor 1401 can be a single-core (single CPU) processor or a multi-core (multi-CPU) processor. Unless otherwise specified, components such as processors or memories used to perform tasks can be implemented as general-purpose components temporarily configured to perform tasks at a given time or specific components manufactured to perform tasks. As used herein, the term "processor" refers to one or more devices or circuits. Processor 1401 can also be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field programmable gate arrays (FPGAs) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor can be a microprocessor or any conventional processor, etc.
[0239] The program code executed by the CPU of the processor 1401 may be stored in the memory unit 1402 or the storage medium 1403. Optionally, the program code (e.g., kernel, program to be debugged) is stored in the storage medium 1403 and copied to the memory unit 1402 for execution by the processor 1401. The processor 1401 may execute at least one operating system, which may be LINUX. TM , UNIX TM 、windows TM ANDROID TM 、IOS TMThe processor 1401 controls the operation of the computing device 1400 by controlling the execution of other programs or processes, controlling the communication with peripheral devices, and controlling the use of data processing device resources, thereby implementing the operating steps of the above method.
[0240] In addition to the data bus, the bus 1404 may also include a power bus, a control bus, a status signal bus, etc. However, for the sake of clarity, various buses are labeled as the bus 1404 in the figure.
[0241] Optionally, the computing device 1400 further includes a communication interface (not shown in the figure), which is used to enable communication between the computing device 1400 and external devices or equipment. For example, the computing device 1400 can communicate with a sensor to obtain the above-mentioned point cloud data.
[0242] It should be understood that the computing device 1400 according to the embodiment of the present application may correspond to the computing device 1300 in the embodiment of the present application, and the above and other operations and / or functions of each module in the computing device 1400 are respectively for implementing Figures 2 to 12 For the sake of brevity, the corresponding processes of each method in are not repeated here.
[0243] The embodiment of the present application also provides a computing system, which may include a sensing unit and a Figure 13 The computing device 1300 shown in FIG. The sensing unit is used to collect point cloud data. The acquisition unit in the computing device 1300 can acquire the point cloud data collected by the sensing unit.
[0244] The embodiment of the present application also provides a computing system, which includes a sensor and Figure 14 The computing device 1400 is shown. The sensor can communicate with the processor 1401, the memory unit 1402 and the storage medium 1403 in the computing device 1400 via a bus 1404. The sensor is used to collect point cloud data.
[0245] The present application also provides a target device, which includes the aforementioned computing system. The target device may be a vehicle, a robot, or an unmanned aerial vehicle (UAV). The vehicle may be a fuel-powered vehicle, a new energy vehicle, or an automated guided vehicle (AVG). The robot may be a service robot, an industrial robot, or the like.
[0246] The above embodiments can be implemented in whole or in part by software, hardware, firmware or any other combination. When implemented using software, the above embodiments can be implemented in whole or in part 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 or executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. 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 computer-readable storage medium. 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 a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) method. 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 contains one or more available media sets. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium. The semiconductor medium can be a solid state drive (SSD).
[0247] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.
Claims
1. A method for processing point cloud data, characterized in that: The method comprises: Acquire first point cloud data, where the first point cloud data is point cloud data of a first frame collected by a sensor; Determine a first point cloud set from the first point cloud data, where the first point cloud set consists of non-reference plane points in the point cloud data; Determining a first grid map based on the first point cloud set; Segmenting the first point cloud data using an adaptive segmentation parameter to obtain N objects, where N is a positive integer greater than or equal to 2; The N objects are fused according to preset rules, wherein: The step of segmenting the first point cloud data using the adaptive segmentation parameter to obtain N objects includes: determining a reference distance, where the reference distance is used to indicate a distance from a point in the first point cloud data to a preset position; Determining at least one segmentation parameter according to a correspondence between the reference distance and the adaptive segmentation parameter; According to the at least one segmentation parameter, growth is performed to obtain the N objects, wherein, Determining the reference distance includes: Determining a distance from a target grid in the first grid map to the preset position as the reference distance, wherein the target grid is a grid containing a point; The determining a first point cloud set from the first point cloud data includes: Determine a second grid map based on the first point cloud data, where the second grid map is a grid map based on polar coordinates, and the second grid map includes P sector-shaped areas, where P is a positive integer greater than or equal to 2; Determine a reference grid constituting the P sector-shaped areas, wherein a height difference between a highest point and a lowest point in the reference grid is less than a second preset threshold, j=1, ..., P; Performing plane fitting according to the points in the reference grid in the P sector-shaped areas to obtain a fitting plane; Determine a point in a j-th sector-shaped area among the P sector-shaped areas, the point having a distance from the fitting plane being less than a third threshold, as a fitting point; Establishing a Gaussian process regression model corresponding to the j-th sector-shaped area according to the fitting points in the j-th sector-shaped area; Determining whether each non-fitting point in the j-th sector-shaped area is a reference plane point according to the Gaussian regression model corresponding to the j-th sector-shaped area; Points in the j-th sector-shaped area other than the reference plane points in the non-fitting points and the fitting points in the j-th sector-shaped area are determined as non-reference plane points included in the j-th subset in the first point cloud set.
2. The method according to claim 1, wherein The fusing the N objects according to a preset rule includes: Determining an association relationship between each of the N objects and an object in second point cloud data, wherein the second point cloud data is point cloud data of a second frame acquired by the sensor, and the second frame is a previous frame of the first frame; If at least two objects among the N objects are associated with the same object in the second point cloud data, the at least two objects are fused.
3. The method according to claim 1 or 2, wherein: Determining a first grid map according to the first point cloud set includes: Determine M grid maps according to the first point cloud set, wherein the M grid maps correspond to points at M heights respectively; The first grid map is determined from the M grid maps, where a height of a point corresponding to the first grid map is less than a height of a point corresponding to other grid maps in the M grid maps, and M is a positive integer greater than or equal to 2.
4. The method according to claim 3, wherein The step of growing the N objects according to the at least one segmentation parameter to obtain the N objects includes: determining a reference object included in the first grid map according to the target grid in the first grid map and the at least one segmentation parameter; Each reference object included in the first grid map is used as a seed region, and region growing is performed along the height direction according to target grids in grid maps other than the first grid map in the M grid maps to obtain the N objects.
5. The method according to claim 4, wherein The determining, based on the target grid in the first grid map and the at least one segmentation parameter, a reference object included in the first grid map comprises: Growing a first reference object according to a first target grid and a first segmentation parameter, wherein the first target grid is one of a plurality of target grids included in the first grid map, and the first segmentation parameter corresponds to a distance from the first target grid to the preset position; If at least one target grid among the multiple target grids does not belong to the first reference object, growing is performed according to a second target grid and a second segmentation parameter to obtain a second reference object, wherein the second target grid is another one of the multiple target grids included in the first grid map, and the second target grid does not belong to the first reference object, and the second segmentation parameter corresponds to the distance from the second target grid to the preset position.
6. A computing device, characterized in that: The computing device comprises: An acquiring unit, configured to acquire first point cloud data, where the first point cloud data is point cloud data of a first frame acquired by a sensor; The processing unit is configured to determine a first point cloud set from the first point cloud data, wherein the first point cloud set is composed of non-reference plane points in the point cloud data, wherein the determining the first point cloud set from the first point cloud data comprises: determining a second grid map based on the first point cloud data, wherein the second grid map is a grid map based on polar coordinates, and the second grid map includes P sector areas, where P is a positive integer greater than or equal to 2; determining a reference grid constituting the P sector areas, wherein the height difference between the highest point and the lowest point in the reference grid is less than a second preset threshold value, j=1,…,P; and performing a point-to-point search based on the points in the reference grid in the P sector areas. Performing plane fitting to obtain a fitting plane; determining a point in a j-th sector-shaped area among the P sector-shaped areas whose distance to the fitting plane is less than a third threshold as a fitting point; establishing a Gaussian process regression model corresponding to the j-th sector-shaped area based on the fitting points in the j-th sector-shaped area; determining whether each non-fitting point in the j-th sector-shaped area is a reference plane point based on the Gaussian regression model corresponding to the j-th sector-shaped area; determining points in the j-th sector-shaped area other than the reference plane points among the non-fitting points and the fitting points in the j-th sector-shaped area as non-reference plane points included in the j-th subset of the first point cloud set; The processing unit is configured to determine a first grid map based on the first point cloud set; The processing unit is configured to segment the first point cloud data acquired by the acquisition unit using an adaptive segmentation parameter to obtain N objects, where N is a positive integer greater than or equal to 2; A fusion unit is used to fuse the N objects determined by the processing unit according to a preset rule, wherein The processing unit is specifically configured to: Determine a distance from a target grid in the first grid map to a preset position as a reference distance, wherein the reference distance is used to indicate a distance from a point in the first point cloud data to the preset position, and the target grid is a grid containing the point; Determining at least one segmentation parameter according to a correspondence between the reference distance and the adaptive segmentation parameter; Growing is performed according to the at least one segmentation parameter to obtain the N objects.
7. The computing device according to claim 6, wherein: The fusion unit is specifically used for: Determining an association relationship between each of the N objects and an object in second point cloud data, wherein the second point cloud data is point cloud data of a second frame acquired by the sensor, and the second frame is a previous frame of the first frame; If at least two objects among the N objects are associated with the same object in the second point cloud data, the at least two objects are fused.
8. The computing device according to claim 6 or 7, wherein: The processing unit is specifically configured to: Determine M grid maps according to the first point cloud set, wherein the M grid maps correspond to points at M heights respectively; The first grid map is determined from the M grid maps, where a height of a point corresponding to the first grid map is less than a height of a point corresponding to other grid maps in the M grid maps, and M is a positive integer greater than or equal to 2.
9. The computing device according to claim 8, wherein: The processing unit is specifically configured to: determining a reference object included in the first grid map according to the target grid in the first grid map and the at least one segmentation parameter; Each reference object included in the first grid map is used as a seed region, and region growing is performed along the height direction according to target grids in grid maps other than the first grid map in the M grid maps to obtain the N objects.
10. The computing device according to claim 9, wherein: The processing unit is specifically configured to: Growing a first reference object according to a first target grid and a first segmentation parameter, wherein the first target grid is one of a plurality of target grids included in the first grid map, and the first segmentation parameter corresponds to a distance from the first target grid to the preset position; If at least one target grid among the multiple target grids does not belong to the first reference object, growing is performed according to a second target grid and a second segmentation parameter to obtain a second reference object, wherein the second target grid is another one of the multiple target grids included in the first grid map, and the second target grid does not belong to the first reference object, and the second segmentation parameter corresponds to the distance from the second target grid to the preset position.
11. A computing device, characterized in that: The computing device includes a processor and a memory, wherein the memory stores a program unit, and the processor is configured to call the program code in the memory to execute the method according to any one of claims 1 to 5.
12. A computing system, characterized in that: The computing system includes a sensor and a computing device according to any one of claims 6 to 10, wherein the sensor is configured to collect first point cloud data.
Citation Information
Patent Citations
Point cloud partition method and device
CN104143194A
Method and device for processing point cloud data
CN110349158A