An obstacle detection method based on lidar point cloud clustering

By preprocessing, ground segmentation and clustering of lidar point cloud data, European clustering and OBB bounding box fitting are used to solve the problems of noise points and redundant data in lidar point cloud data, and efficient obstacle detection and target tracking are achieved.

CN116524219BActive Publication Date: 2025-07-25NORTHWESTERN POLYTECHNICAL UNIV
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202310059217.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-01-16
Publication Date
2025-07-25
Estimated Expiration
2043-01-16

AI Technical Summary

Technical Problem

In the prior art, there are a large number of noise points and redundant data in the lidar point cloud data, resulting in insufficient accuracy and real-time accuracy of obstacle detection, which cannot meet the obstacle avoidance and target tracking needs of unmanned vehicles.

Method used

Outliers are removed by probability statistics filters, voxel grid filter downsampling, CropBoxFillter encloses the ROI region, and the ground point cloud and obstacle point cloud are separated based on the linear fitting algorithm, and obstacles are fitted using European clustering and OBB enclosure boxes to improve the accuracy and real-timeness of obstacle detection.

Benefits of technology

It effectively removes noise points and redundant data, improves the accuracy of obstacle detection and the real-time system, and ensures the safe driving and target tracking capabilities of unmanned vehicles.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116524219B_ABST
    Figure CN116524219B_ABST
Patent Text Reader

Abstract

The present invention relates to an obstacle detection method based on lidar point cloud clustering. First, point cloud preprocessing is carried out, mainly filtering the point cloud through outlier removal and downsampling. Then, a linear fitting algorithm is used to separate the ground point cloud and the obstacle point cloud. After that, Euclidean clustering is adopted to achieve the separation of obstacles, improving the accuracy of obstacle detection. Finally, a 3D bounding box fitting is performed on the clustered point cloud, facilitating the further driving control of the unmanned vehicle after obstacle perception, for subsequent work such as obstacle avoidance and tracking.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the field of driverless, and relates to an obstacle detection method based on lidar point cloud clustering. Specifically, it performs segmentation and clustering on lidar point cloud data to achieve obstacle detection. Background Art

[0002] Environmental perception sensors in the field of driverless include cameras, lidars, and millimeter-wave radars. Cameras are closer to the human eye, and due to the increasingly mature development of image processing technology combined with intelligent AI, cameras are gradually playing a more important role in the field of driverless. For example, the famous car company Tesla early on even claimed that it would only use cameras as the "eyes" of driverless. The advantages of cameras are that they can obtain the optical color information of the environment and are inexpensive, but they are easily affected by light, cannot adapt to all-weather working hours, and cannot obtain the three-dimensional information of the environment. While millimeter-wave radars can obtain the three-dimensional information of the environment, their point clouds are too sparse and are often difficult to use for imaging. In contrast, lidars have dense point cloud data that can describe the three-dimensional information of the environment in detail, are not easily interfered with, and can adapt to all-weather working hours. With the continuous development of technology, the price of lidars is also becoming increasingly low. It can be predicted that lidars will become the undisputed "eyes" of driverless.

[0003] Lidars can sense the surrounding environmental information and present the surrounding environmental information in the form of point clouds. Due to the presence of dust in the actual environment and due to occlusion and other reasons, the data we actually obtain is not all valid. Moreover, lidars do not naturally filter the data during data acquisition. For driverless, we need to further process the point clouds to mark obstacles for subsequent obstacle avoidance, tracking, and other tasks.

[0004] Obstacle detection is an important part of environmental perception. It detects obstacles from a large amount of scattered and disordered point cloud data through operations such as point cloud filtering, ground segmentation, and clustering. Summary of the Invention

[0005] Technical Problems to be Solved

[0006] In order to avoid the deficiencies of the prior art, the present invention proposes an obstacle detection method based on lidar point cloud clustering. Based on the lidar point cloud, through preprocessing, ground segmentation, and clustering of the point cloud, a method for detecting point cloud obstacles is proposed, thereby facilitating subsequent obstacle avoidance and target tracking.

[0007] Technical Solution

[0008] An obstacle detection method based on lidar point cloud clustering, characterized by the following steps:

[0009] Step 1: Filter the point cloud obtained by the lidar of the driverless vehicle, remove the points outside the ROI area, outlier noise points, and downsample the point cloud:

[0010] Use a probabilistic statistical filter to remove outliers in the original point cloud;

[0011] Use a voxel grid filter to downsample the point cloud after removing outliers;

[0012] Define the ROI area through the CropBoxFillter in the PCL library;

[0013] Step 2: Use a ground segmentation algorithm based on linear fitting to divide the original data into ground point cloud and obstacle point cloud, and only the obstacle point cloud remains in one frame of point cloud data;

[0014] Step 3: Use Euclidean clustering to identify the point cloud belonging to the same obstacle to determine its geometric features and position information;

[0015] Step 4: Use a cuboid as the bounding box, apply the method of the minimum area rectangle to each clustering object to obtain a 2D box, use the highest and lowest points of the 3D point cloud as height information, and the 2D box as length and width information to generate a 3D box containing length, width, and height information, and obtain the 3D bounding box surrounding the obstacle point cloud data;

[0016] The bottom rectangular surface of the 3D box contains the lowest point of the point cloud, and the top rectangular surface contains the highest point of the point cloud;

[0017] Step 5: Align the 3D bounding box with the OBB bounding box in the PCL library. During the movement of the driverless vehicle, the OBB continuously changes its own direction according to the orientation of the driverless vehicle and the obstacles in front of its own direction.

[0018] The step of using a probabilistic statistical filter to remove outliers in Step 1 is to perform a statistical analysis on the neighborhood of each point, calculate its average distance to all neighboring points, and the points whose average distance is outside the standard range are defined as outliers and removed from the data.

[0019] The standard range is determined according to the definition of the global average distance and variance.

[0020] The step of using a voxel grid filter for downsampling: Create a three-dimensional voxel grid for the point cloud data, set the size of the grid, calculate the number of points in each voxel, and if the set number is reached, output the center point or centroid of all points in the voxel.

[0021] The ROI region is defined by the CropBoxFillter in the PCL library. Centered at the origin, its size is determined by two vertices, namely the maximum values in the positive x, y, and z directions, i.e., the maximum x coordinate, the maximum y coordinate, and the maximum z coordinate, and the minimum values in the negative x, y, and z directions, i.e., the minimum x coordinate, the minimum y coordinate, and the minimum z coordinate.

[0022] The 3D box is generated by calling the OBB (Oriented bounding Box) in the PCL library.

[0023] The 3D box calls the OBB function in the PCL library to obtain the 3D bounding box required for the clustered point cloud.

[0024] Beneficial effects

[0025] An obstacle detection method based on lidar point cloud clustering proposed by the present invention first performs point cloud preprocessing, mainly filtering the point cloud through outlier removal and downsampling, then uses a linear fitting algorithm to separate the ground point cloud and the obstacle point cloud, and then uses Euclidean clustering to separate the obstacles, improving the accuracy of obstacle detection. Finally, a 3D bounding box fitting is performed on the clustered point cloud, which facilitates the further driving control of the unmanned vehicle after obstacle perception and is used for subsequent obstacle avoidance, tracking, etc. Brief description of the drawings

[0026] Figure 1 : Flowchart of this method

[0027] Figure 2 : Original point cloud

[0028] Figure 3 : Point cloud after outlier removal

[0029] Figure 4 : Downsampling grid 0.2

[0030] Figure 5 : Downsampling grid 0.5

[0031] Figure 6 : ROI region selected 120X120X30

[0032] Figure 7 : Divide the three-dimensional space into small segments of equal size

[0033] Figure 8 : Point p i is mapped into a bin under a segment and finally mapped to p in a straight line i ′

[0034] Figure 9a: Point cloud segmented from the ground

[0035] Figure 9b : Point cloud after ground removal, that is, obstacle point cloud

[0036] Figure 9c : Ground segmentation and obstacle point cloud

[0037] Figure 10 : Results after Euclidean clustering

[0038] Figure 11 : The PCL library also has built-in AABB bounding box (Axis-Aligned Bounding Box, axis-aligned bounding box) and OBB bounding box (Oriented Bounding Box, oriented bounding box)

[0039] Figure 12 : OBB bounding box

[0040] Figure 13 : AABB bounding box DETAILED DESCRIPTION

[0041] The present invention will now be further described with reference to the embodiments and the accompanying drawings:

[0042] The present invention is based on radar point cloud, and proposes a point cloud obstacle detection method by preprocessing, ground segmentation and clustering the point cloud, thereby facilitating subsequent obstacle avoidance and target tracking.

[0043] First, point cloud preprocessing is performed, mainly filtering the point cloud by removing outliers and downsampling. Then, a linear fitting algorithm is used to separate the ground point cloud and the obstacle point cloud. After that, Euclidean clustering is used to separate obstacles and improve the accuracy of obstacle detection. Finally, 3D bounding box fitting is performed on the clustered point cloud to facilitate further operations after obstacle perception. The flowchart is shown below. Figure 1 As shown:

[0044] The specific steps are as follows:

[0045] 1. Point cloud data preprocessing

[0046] The 32-line laser radar of the Suteng obtains 640,000 points per second. If these points are operated directly, a lot of computing resources will be wasted, affecting the real-time performance of the system. Therefore, it is necessary to pre-process the data, mainly filtering the point cloud. While retaining the basic features of the obstacle, the number of point clouds is reduced to relieve the computing pressure of the system. The steps include removing points outside the ROI area, outlier noise points and downsampling of the point cloud.

[0047] 1.1 Outlier Removal

[0048] The lidar is rigidly connected to the vehicle body. Due to the vehicle's own vibration, uneven road surface, interference from the characteristics of the lidar device, flying insects, suspended fallen leaves, dust, and bad weather, etc., some isolated noise points and outliers far from the vehicle are generated in the detected point cloud data. The measurement data of these noise points is useless. If misidentified as obstacles, it will cause false alarms in the system, affect the normal driving of the vehicle, bring an unnecessary computational burden to the system, and reduce the real-time performance of data processing. Therefore, it is necessary to remove the noise points before subsequent point cloud data processing to ensure the effective reliability of the data.

[0049] Figure 2 is the original point cloud data. It can be clearly seen that there are a large number of discrete miscellaneous points in the figure. Although the number of these miscellaneous points itself is not dominant, they still have an impact on detection.

[0050] Here, a probabilistic statistical filter is used to remove the outliers in the original point cloud. This filter is mainly used to eliminate outliers or gross error points caused by measurement errors. Its principle is to perform a statistical analysis on the neighborhood of each point, calculate its average distance to all neighboring points. Assuming the result obtained is a Gaussian distribution, whose shape is determined by the mean and standard deviation, then the points whose average distance is outside the standard range (defined by the global distance average and variance) can be defined as outliers and removed from the data.

[0051] The point cloud data after removing outliers is as Figure 3 , and it can be clearly seen that the overall image becomes clearer and the discrete points at a long distance are all removed. The next step is to downsample the point cloud after removing outliers.

[0052] 1.2 Downsampling

[0053] The working frequency of the lidar is generally 10Hz, and hundreds of thousands of laser points are returned per second. Such a large amount of data will consume a large amount of computing resources and reduce the real-time performance of data processing. Therefore, on the premise of ensuring enough useful information, the point cloud is downsampled to speed up the running speed of the algorithm. In this paper, the method of point cloud downsampling uses the VoxelGrid Filter. The steps of voxel grid filtering: create a three-dimensional voxel grid for the point cloud data, set the size of the grid, which is represented by set Leaf Size(%f,%f,%f) in the code, calculate the number of points in each voxel. If it reaches the specified number, output the center point or centroid of all points in the voxel. This means that the larger the set grid, the more points are filtered out and the more obvious the filtering effect. The method of using the center point to approximately represent all points in the voxel is faster, but the surface representation corresponding to the sampled points is inaccurate.

[0054] To more clearly demonstrate the effect of voxel filtering, two results with different grid sizes are provided here.

[0055] Figure 4 The result after setting the downsampling grid to 0.2. Although there doesn't seem to be much difference visually, in fact, the point cloud originally with 53,295 points is reduced to 19,111 points after downsampling. To further highlight the effect of downsampling, the grid size is further increased to 0.5, and the result is as shown in Figure 5 , at this time, only 7,510 points remain in the point cloud, which is very obvious visually. It becomes sparser compared to the original image, but some features are still retained, such as tree trunks, walls, road surfaces, etc.

[0056] It is worth mentioning that setting a larger grid will filter out more point clouds. Relatively speaking, the computational cost will be greatly saved, but it's not that the larger the better. In practical applications, it should still be combined with the environment.

[0057] 1.3 Defining the ROI Region

[0058] ROI (Region of Interest) means the region of interest. In machine vision and image processing, the area that needs to be processed is outlined in the form of a square, circle, ellipse, irregular polygon, etc. from the processed image, which is called the region of interest, that is, ROI. Although in autonomous driving, the broader the field of view, the better. A broader field of view can detect some targets earlier, thus leaving more sufficient time for the unmanned vehicle to make decisions. But most of the time, only the broadness in the XY plane is required rather than in the Z axis. Many high-altitude targets detected by the unmanned vehicle are meaningless. In addition, the maximum detection range of the radar can reach 200 meters, but in fact, due to various occlusion reasons, the point cloud is very sparse at long distances and basically has no features, making it unable to be used for recognition or detection. The existence of such point data will instead affect detection and mislead perception. Even from the perspective of saving computing power, we should limit the range of point cloud data.

[0059] The ROI region can be achieved through the CropBoxFillter in the PCL library. It will filter the points within the specified cube. The cube is centered at the origin, and its size is determined by two vertices, namely the maximum values in the positive xyz directions (the maximum x coordinate, maximum y coordinate, maximum z coordinate), and the minimum values in the negative xyz directions (the minimum x coordinate, minimum y coordinate, minimum z coordinate). The CropBoxFillter is essentially implemented by a pass-through filter, which filters out some points by restricting the maximum values in the three coordinate axes directions. Therefore, the PassThrough in PCL can also be directly used to define the cube ROI region.

[0060] The ROI area is set to a size within the range of 120X120X30, that is, the maximum and minimum distances on the x-axis and y-axis are 60m and -60m respectively, and the maximum and minimum distances on the z-axis are 15m and -15m. The result is as Figure 6 shown:

[0061] Compared with Figure 5 it, some points at the topmost and leftmost are removed. These points that are farther away are sparse and unorganized, making them difficult to distinguish, so it is better to remove them.

[0062] II. Ground Segmentation

[0063] In a frame of point cloud data obtained by a lidar rotating one circle, there are a large number of ground point clouds. It is not the main object of obstacle detection and will affect the real-time performance of the system. Therefore, it is necessary to accurately segment the original data into ground point clouds and obstacle point clouds, reduce the difficulty of the subsequent clustering process and improve the calculation efficiency. If over-segmentation occurs and obstacle point cloud data is segmented into ground point clouds, it will lead to missed detection of obstacles and affect the safety of vehicle driving; if under-segmentation occurs and the ground point clouds are not completely removed, it will cause over-detection of obstacles and affect the normal driving of the vehicle. Common ground segmentation methods include:

[0064] 2.1 Ground Segmentation Algorithm Based on Linear Fitting

[0065] As previously discussed, RANSAC-based plane fitting randomly samples the entire point cloud data and then calculates the fitting equation, and finally selects the best result in multiple iterations. On the one hand, this method requires multiple iterations such as 200 times to get rid of randomness to a certain extent and obtain the real equation. On the other hand, the plane equation can only represent a plane, and the actual lidar point cloud has factors such as noise and will not present a plane effect. Most importantly, the ground in our real life is specially designed for drainage and walking, etc., and is not the plane we think, but an arched curved surface. Even if the parameters of the plane constraint are relaxed, RANSAC can successfully filter out the ground, but non-ground objects will also be filtered out as the ground. To adapt to this situation with a certain curved surface, the ground segmentation algorithm based on linear fitting is proposed

[54] , since this algorithm requires more parameters to be adjusted, the principle of this algorithm and some important parameters will be introduced in detail below in combination with the paper and the program.

[0066] 1. Point Cloud Acquisition

[0067] First, the entire three-dimensional Cartesian coordinate system is represented in a form similar to polar coordinates for point cloud division, dividing the disordered point cloud into an ordered point cloud. The division criteria are as follows: segment, bins.

[0068] Figure 7

[0069] Segment:

[0070] The x-y plane in the entire Cartesian coordinate system is transformed into a circular surface with an infinite radius. Set a radian parameter Δα. Then we can transform the entire x-y plane into a circular surface divided into M fan-shaped surfaces by the radian parameter Δα.

[0071]

[0072] That is, the entire x-y plane is divided into M segments. To be able to well locate points in the segments, the following method is used:

[0073]

[0074] In this way, each point can be mapped into a segment to initially achieve ordering. For the given point cloud, the division result is as follows:

[0075] P s ={p i ∈P|segment p(i) =s}(1 - 3)

[0076] where s represents segment s; P represents all point clouds; p(i) represents point cloud i. P s represents the set of point clouds belonging to segment s. In this way, the entire unordered point cloud is transformed into an ordered point cloud divided by segments.

[0077] Bins:

[0078] Previously, the division of segments has been carried out. That is, the entire point cloud is divided into M segments. To further carry out the ordered division of the point cloud, the division of bins is used here. For the point cloud P s in segment s for processing.

[0079] Two distance parameters r min and r max can be set to limit the j-th bin. Therefore, for each point, it is divided by the following conditions:

[0080]

[0081] Therefore, the projection of the point on the x-y plane can be used to judge p i ∈P. Through this operation, a fan-shaped surface can be divided into multiple fan-shaped rings. In this way, the unordered point cloud is ordered as Figure 8, which was originally indexed disorderly in memory. At this time, points can be indexed through segments and bins, but it is not a unique index.

[0082] It should be noted that previously it was said that the space was divided into segments by Δα, while in the program, the number of segments and bins is actually directly selected in the parameter table. Obviously, the larger these two parameters are set, the more detailed the space is divided, and the segmentation effect will undoubtedly be better. However, each bin needs to be processed subsequently, so the larger the parameter, the greater the computational complexity. The specific setting should be as large as possible under the premise of considering one's own computing power.

[0083] The point cloud was sorted in the previous step. Now, the lowest point, that is, the point with the smallest z value, needs to be selected to screen the ground points. All the data processing here is carried out in one segment.

[0084] The projection on the x-y plane has been carried out previously. However, the z coordinate of the point is retained, that is, a three-dimensional coordinate point is transformed into a two-dimensional coordinate point, plus the angle information of the x-y plane.

[0085] {x, y, z} = {d, z} + θ (1 - 5)

[0086] In the above formula, θ is the angle obtained when the space is divided into segments, where In this way, the operation of dimensionality reduction is achieved. A three-dimensional data {x, y, z} is transformed into two-dimensional data {d, z}. At the same time, its subscript is the bridge connecting the three-dimensional coordinate and the two-dimensional coordinate, which provides a theoretical support for transforming the corresponding two-dimensional ground points into three-dimensional ground points later.

[0087] After this step of operation, the three-dimensional point cloud can be transformed into a two-dimensional point cloud to achieve the dimensionality reduction operation. However, this step is different from the ordinary dimensionality reduction operation. It does not simply reduce one dimension, but uses the square root in the horizontal direction as the dimension to achieve the dimensionality reduction operation. This operation can retain the information of the vertical dimension and at the same time does not lose the information of the horizontal dimension. It is a good dimensionality reduction method, and then the line fitting can be carried out.

[0088] The data of {d, z} was obtained in the previous step, and the discrete points in the d-z plane can be constructed. For these discrete points, we set four conditions to judge the line fitting, where the line is expressed as y = kx + b;

[0089] The absolute value of the slope of the line should not exceed a set threshold Since this is a d-z plane, the slope of the line represents the value from the z-axis to the x-y plane. The slope should not be too large because an overly large slope will result in a vertical structure. As we are fitting ground points, we need to set a certain threshold for the slope.

[0090] When the absolute value of the slope k is relatively small, y - b should not exceed a specific threshold T. b , because when the absolute value of the slope is very small, it indicates that the ground is basically flat and not in a situation of uphill or downhill. The intercept y - b represents the distance from the ground, and as previously stated, it should be a flat road surface at this time and should not have a large intercept. Therefore, it should be set not to exceed a set vertical dimension threshold T. b . In this way, points above the ground will not be considered as part of the ground.

[0091] The slope k here corresponds to max_slope in the program parameter list, and the actual test size generally does not exceed 0.5.

[0092] There is generally an error in fitting. The root mean square error of the fitted line should not exceed the set error threshold T. RMSE , which corresponds to max_fit_error in the program's parameter list. This is a necessary process for linear fitting, i.e., the least squares method. We need to judge the degree of fit of the fitted line to ensure the success of fitting discrete points.

[0093] Next, we will summarize the entire process. For the fitting of a line, first, we find the first point in the bins of the segment. Then, we check if there is already a line before this point. If not, we take this point as the starting point of the line fitting. Otherwise, we calculate the distance from this point to the existing line. This distance should not exceed a set threshold. If it does not exceed this distance, we consider this point to be able to be fitted to the line. If it exceeds this distance, we start a new line with this point as the reference. Similarly, the slope should not exceed the threshold. In this way, we can perform the fitting of different lines, and there are often multiple lines in a segment.

[0094] Previously, we fitted many lines, and these lines were processed in the order of bins in a segment. We can see that a line may span more than one bin, but there will be no overlap between lines. Therefore, we can use the fitted lines to screen the ground points.

[0095] Based on the selected straight lines and the parameters set by oneself, calculate the distance from a point to the z-axis of the straight line. In this way, the calculated value is the z-gap under the same d condition. In this way, it is possible to screen the ground points, and the points within the threshold range are the ground points we selected.

[0096] In the previous step of screening the ground points, the data in the d-z plane is obtained. Therefore, we need to convert it to the distance in the three-dimensional Cartesian coordinate system. Through the previous screening of points, and then through the index of the original point cloud at the beginning, we can reverse deduce from here to obtain the three-dimensional data points belonging to the ground points. In this way, the final three-dimensional ground data points are obtained.

[0097] Next is the test stage of the actual data. First, complete the setting of each parameter in the parameter list in the program. First, set the nearest and farthest points to 0.5 and 60 respectively. Here, my setting of the farthest point is matched with the previous selection of the ROI area. Next, set the number of bins and segments. In order to extract the ground more accurately, set them to 300 and 360 respectively. Then set the slope and search angle. The slope is set to 0.5, and the search angle is directly set to 1. It should be noted that the search angle here must be greater than the angle of each segment after dividing the segment, otherwise it will not search for the surrounding points. The result is as Figure 9a shown. Figure 9b is the point cloud after removing the ground, that is, the obstacle point cloud. Figure 9c is the set of the ground point cloud and the obstacle point cloud. The blue is the ground point cloud, and the red is the obstacle point cloud.

[0098] III. Point Cloud Clustering

[0099] After the preprocessing of the point cloud data and the ground segmentation, only the obstacle point cloud remains in a frame of point cloud data. However, it is still a discrete point cloud set. The human eye can directly distinguish the visualized obstacle point cloud, but the system cannot judge. It is necessary to identify the point cloud belonging to the same obstacle based on a certain clustering algorithm to determine its geometric characteristics and position information. Point cloud clustering classifies the point cloud data through similar attribute features, so that the data within the same class after clustering has great similarity, and the data between different classes has great differences. The processing efficiency after obstacle clustering is higher than that of traversing all points, which can reduce the system operation pressure and improve the real-time performance of the algorithm. After clustering, information such as its position, contour size, and motion state can be extracted, which is convenient for subsequent tracking of obstacles. Common clustering methods include partitioning-based, hierarchical, density-based, and grid-based clustering, etc.

[0100] 3.1 Euclidean Clustering

[0101] Euclidean clustering is a clustering algorithm based on Euclidean distance measurement. The nearest neighbor query algorithm based on KD-Tree is an important preprocessing method to accelerate the Euclidean clustering algorithm.

[0102] 3.2 Principle of Euclidean Clustering

[0103] The implementation method of Euclidean clustering is roughly as follows:

[0104] 1. Find a point p in the space. 11 , use KD-Tree to find the n nearest points to it, and judge the distances of these n points to p. 11 Put the points with distances less than the threshold r into the class Q.

[0105] 2. Find a point p in Q(p 11 ), and repeat step 1. 12

[0106] 3. Find a point in Q(p 11 , p 12 ), repeat step 1, and find p 12 , p 12 , p 12 … and put all of them into Q.

[0107] 4. When no new points can be added to Q anymore, the search is completed.

[0108] 3.3 Measured Results

[0109] Set the Euclidean distance threshold to 0.5, the minimum number of clustering points to 10, and the maximum number of points to 10000. Generally, the maximum number of points does not need to be set specifically, just maintain a relatively large value. Figure 10 This is the actual result of clustering the point cloud after ground segmentation.

[0110] IV. Bounding Box Fitting

[0111] After clustering, candidate objects to be tracked are obtained. To describe information such as the position, size, and orientation of obstacles and enhance the visualization features, the obstacle point cloud data is surrounded by a 3D bounding box to make it have unified dimensional information and orientation. The bounding box is also called the minimum circumscribed 3D box, which is used to determine the minimum enclosing space of discrete data points. Considering that there are many people and vehicles and relatively few objects with complex shapes in the road environment, and also considering the real-time processing of lidar point cloud data, a cuboid that is easy to create is selected as the bounding box. Usually, the method of the minimum area rectangle (MinIMUm Area Rectangle, MAR) is applied to each clustering object to obtain a 2D box, and combined with the height information to form a 3D bounding box.

[0112] In addition, the PCL library also has built-in AABB (Axis-Aligned Bounding Box) and OBB (Oriented Bounding Box), and the differences are as Figure 11 shown below.

[0113] Obviously, OBB is more in line with the requirements, because in reality, the direction of the driverless vehicle does not always face a fixed direction, but is constantly changing. If the direction of the bounding box is not adjusted at any time, the situation of AABB in Figure 10 will occur. The bounding box is much larger than the space occupied by the actual point cloud, which will undoubtedly interfere with the subsequent path planning and control. However, OBB will continuously calculate its own direction and change with the orientation of the driverless vehicle, so it is obviously more in line with the requirements. Figure 12 The result is for the OBB bounding box. In order to compare with AABB, we also test the effect of AABB, as shown in Figure 13 . Obviously, the situation in Figure 12 occurs.

Claims

1. An obstacle detection method based on lidar point cloud clustering, characterized in that The steps are as follows: Step 1: Filter the point cloud obtained by the lidar of the driverless vehicle, remove the points outside the ROI area, outlier noise points, and downsample the point cloud: Use a probabilistic statistical filter to remove outliers in the original point cloud; Use a voxel grid filter to downsample the point cloud after removing outliers; Define the ROI area through the CropBoxFillter in the PCL library; Step 2: Use a ground segmentation algorithm based on linear fitting to segment the original data into ground point clouds and obstacle point clouds, and only the obstacle point clouds remain in one frame of point cloud data; Step 3: Use Euclidean clustering to identify the point clouds belonging to the same obstacle to determine its geometric features and position information; Step 4: Use a cuboid as the bounding box, apply the method of the minimum area rectangle to each clustering object to obtain a 2D box, use the highest and lowest points of the three-dimensional point cloud as the height information, and the 2D box as the length and width information to generate a 3D box containing length, width, and height information, and obtain a 3D bounding box surrounding the obstacle point cloud data; The bottom rectangular surface of the 3D box contains the lowest point of the point cloud, and the top rectangular surface contains the highest point of the point cloud; Step 5: Align the 3D bounding box with the OBB bounding box in the PCL library. During the movement of the driverless vehicle, the OBB continuously changes its own direction according to the orientation of the driverless vehicle, as well as the obstacles in front of its own direction; The ROI area is defined through the CropBoxFillter in the PCL library. Centered at the origin, its size is determined by two vertices, namely the maximum values in the positive directions of xyz, i.e., the maximum x coordinate, the maximum y coordinate, and the maximum z coordinate, and the minimum values in the negative directions of xyz, i.e., the minimum x coordinate, the minimum y coordinate, and the minimum z coordinate; The 3D box is generated by calling the OBB (Oriented bounding Box) in the PCL library; the 3D box calls the OBB function in the PCL library to obtain the 3D bounding box required for the clustered point cloud.

2. The obstacle detection method based on lidar point cloud clustering according to claim 1, wherein: The use of a probabilistic statistical filter to remove outliers in Step 1 is to perform a statistical analysis on the neighborhood of each point, calculate its average distance to all neighboring points, and the points whose average distance is outside the standard range are defined as outliers and removed from the data.

3. The obstacle detection method based on lidar point cloud clustering according to claim 2, wherein: The standard range is determined according to the definition by the global average distance and variance.

4. The obstacle detection method based on lidar point cloud clustering according to claim 1, wherein: The steps of using a voxel grid filter for downsampling: Create a three-dimensional voxel grid for the point cloud data, set the size of the grid, calculate the number of points in each voxel, and if the set number is reached, output the center point or centroid of all points in the voxel.

Citation Information

Patent Citations

  • Point cloud processing and object identification system and method based on laser radar

    CN114089377A