Introduction to Point cloud filtering

Source: Internet
Author: User

Point cloud Filtering is the basic step of point cloud processing, and it is the preprocessing that must be done before the three-dimensional image processing. Its function is similar to the filtering in signal processing, but the realization means is not the same as the signal processing. I think there are several reasons for this:

    1. The point cloud is not a function, and the x, Y, Z of a complex three-dimensional shape is not defined by some rule or numerical relationship. So the point cloud cannot establish a link between the horizontal ordinate.
    2. Point clouds are discrete in space. Unlike images, signals are not defined on an area and cannot be filtered in the form of a template. In other words, the point cloud does not have a defined domain that is so obvious as the image and signal.
    3. Point clouds are widely distributed in space. Each point in the entire point cloud, and establishing a point-to-point relationship becomes the biggest difficulty. Unlike images and signals, they can be traced.
    4. Point cloud filtering relies on geometric information, rather than numerical relationships.

To sum up, point cloud filtering is only in the abstract sense with the signal, image filtering similar. Because the function of filtering is to highlight the required information.

Method of Point cloud filtering

The PCL conventional filtering methods are well encapsulated. The filtering of point clouds is done by invoking individual filter objects. The main filters are pass-through filters, voxel filters, statistical filters, RADIUS filters , etc. Different characteristics of the filter constitute a more complete point cloud pre-processing family, and combined use to complete the task. In fact, the choice of filtering methods and collection methods are inseparable.

    1. If the point cloud is collected by the method of linear structured light scanning, it is necessary that the object will be widely distributed along the z direction, but the X, y distribution is in a limited range. A pass-through filter can be used to determine the range of the point cloud in the X or Y direction, and the outliers can be cut off quickly to achieve the first coarse processing.
    2. When a point cloud is collected using devices such as a high-resolution camera, the point cloud tends to be more dense. Excessive number of point clouds can be difficult for subsequent segmentation efforts. The Voxel filter can achieve the function of downward sampling without destroying the geometric structure of the point cloud itself. The point cloud geometry is not only a macroscopic geometric shape, but also includes its microscopic arrangement, such as the horizontal similar dimensions, the same distance vertically. Although the efficiency of random sampling is higher than that of voxel filter, it can destroy the micro-structure of point cloud.
    3. Statistical filters are used to remove apparent outliers (outliers are often introduced by measurement noise). It is characterized by sparse distribution in space, which can be understood as: each point expresses a certain amount of information, the more dense an area, the greater the amount of information possible. The noise information belongs to useless information, and the quantity is small. So the information expressed by outliers is negligible. Considering the characteristics of outliers, it is possible to define a point cloud that is smaller than a certain density, and that the point cloud is not valid. Calculates the average distance from each point to its nearest K-point. The distance in the point cloud should constitute a Gaussian distribution. Given mean and variance, you can exclude points outside of 3∑.
    4. Radius filters are much simpler and more brutal than statistical filters. Draw a circle at a point to calculate the number of points falling in the circle, and when the quantity is greater than the given value, the point is retained, and the number is less than the given value. This algorithm runs fast, and the points left by the iteration must be the most dense, but the radius of the circle and the number of points inside the circle need to be specified manually.

In fact, the method of point cloud filtering and the traditional signal filtering and image filtering in the degree of automation, filtering effect still has a big gap. Most scholars focus on the migration of image recognition and registration algorithm in point cloud processing, but less attention is paid to filtering algorithm. In fact, point cloud pre-processing on the measurement accuracy and recognition speed has a great impact.

Implementation of filtering algorithm for Point Cloud Library

All of the above filtering algorithms are already included in the Point Cloud library. The implementation of the PCL filtering algorithm is accomplished by filter class, and a new filter object is created and parameters are set when the filtering function is implemented. This ensures that the point cloud can be processed with different filter parameters for different filtering tasks.

Pass-through filter:

// Create The Filtering ObjectPCL::P ASSTHROUGH<PCL::P ointxyz> pass;pass.setinputcloud (Cloud); Pass.setfilterfieldname ("z");p ass.setfilterlimits (0.01.0 ); // pass.setfilterlimitsnegative (true); Pass.filter (*cloud_filtered);

Voxel Filter:

  Create the Filtering object  PCL::VOXELGRID<PCL::P clpointcloud2> sor;  Sor.setinputcloud (cloud);  Sor.setleafsize (0.01f, 0.01f, 0.01f);  Sor.filter (*cloud_filtered);

Statistical filters:

  // Create The filtering object  PCL::STATISTICALOUTLIERREMOVAL<PCL::P ointxyz> sor;  Sor.setinputcloud (cloud);  Sor.setmeank (+);  Sor.setstddevmulthresh (1.0);  Sor.filter (*cloud_filtered);

RADIUS Filter:

radiusoutlierremoval Background Knowledge

1 , which helps to visualize the role of Radiusoutlierremoval , in point cloud data, the user specifies that each point within a certain range must have at least enough neighbors around. For example, if you specify that you want at least 1 neighbors, only yellow points will be deleted, and yellow and green points will be deleted if you specify at least 2 neighbors.

Figure 1

// Build the filter    PCL::RADIUSOUTLIERREMOVAL<PCL::P ointxyz> outrem;    Outrem.setinputcloud (cloud);    Outrem.setradiussearch (0.8);    Outrem.setminneighborsinradius (2);     // Apply Filter    Outrem.filter (*cloud_filtered);

Obviously, different filters in the process of filtering, always create an object, then set the object parameters, and finally call the filter function to the Point cloud processing (Point cloud as a smart pointer to a region)

Http://www.cnblogs.com/ironstark/p/4991232.html

http://www.pclcn.org/study/shownews.php?lang=cn&id=73

Introduction to Point cloud filtering

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.