Mask-based global point cloud filtering method, equipment and storage medium

文档序号:1923269 发布日期:2021-12-03 浏览:10次 中文

阅读说明:本技术 一种基于遮罩的全局点云滤波方法、设备和存储介质 (Mask-based global point cloud filtering method, equipment and storage medium ) 是由 朱登明 封雷 石敏 王兆其 于 2021-08-06 设计创作,主要内容包括:本发明提供了一种基于遮罩的全局点云滤波方法、设备和存储介质。本发明的方法包括:确定能够包围目标点云中所有点的包围盒,对其划分形成多个体素格;基于坐标将所述目标点云中的每个点分入相应的体素格,遍历所有体素格,确定每个体素格的连通域属性;基于设定的连通域阈值,确定满足所述阈值的体素格,形成遮罩;根据遮罩的位置对所述目标点云进行滤波。本发明通过对三维点云全局信息的考察,自适应得到体素格划分,进而根据自定义的连通域获得遮罩,用来描述点云的全局空间拓扑信息,根据该拓扑信息进行滤波。该方法针对空间疏密程度有较大差异的点云效果更好,可以有效去除原始点云中的离群点,并且较好保持点云的细节信息。(The invention provides a mask-based global point cloud filtering method, mask-based global point cloud filtering equipment and a storage medium. The method of the invention comprises the following steps: determining a bounding box capable of surrounding all points in the target point cloud, and dividing the bounding box into a plurality of voxel grids; dividing each point in the target point cloud into corresponding voxel grids based on coordinates, traversing all the voxel grids, and determining the connected domain attribute of each voxel grid; determining voxel grids meeting the set threshold value based on the set connected domain threshold value to form a mask; and filtering the target point cloud according to the position of the mask. According to the invention, the voxel grid division is obtained in a self-adaptive manner through the investigation of the global information of the three-dimensional point cloud, and then a mask is obtained according to a self-defined connected domain to describe the global spatial topological information of the point cloud, and filtering is carried out according to the topological information. The method has better effect on the point clouds with larger difference in space density degree, can effectively remove outliers in the original point clouds, and better keeps the detail information of the point clouds.)

1. A method of point cloud filtering, the method comprising the steps of:

step 1: determining a bounding box capable of surrounding all points in a target point cloud, and dividing the bounding box to form a plurality of voxel grids;

step 2: dividing each point in the target point cloud into corresponding voxel grids based on coordinates, traversing all the voxel grids, determining a connected domain attribute of each voxel grid, wherein the connected domain attribute is determined based on the effectiveness of the current voxel grid and the number of effective voxel grids directly or indirectly adjacent to the current voxel grid, and determining the voxel grids meeting a set connected domain threshold value based on the set connected domain threshold value to form a mask;

and step 3: and filtering the target point cloud according to the position of the mask, reserving the points covered by the mask, and filtering the points which are not covered by the mask.

2. The point cloud filtering method of claim 1, wherein the step 1 comprises:

step 11: determining the side length of a voxel grid based on the average distance and the sparsity constant of the three-dimensional point cloud;

step 12: determining a bounding box based on the data of the target point cloud, so that each side length of the bounding box is an integral multiple of the corresponding side length of the voxel grid;

step 13: dividing the bounding box into a plurality of voxel grids that are seamlessly docked with one another;

step 14: for each point, its voxel lattice assignment is determined.

3. The point cloud filtering method of claim 1, wherein in step 2, the step of determining the connected-domain attributes of each voxel grid comprises:

step 21: traversing all the voxel grids, determining a connected domain of each voxel grid, and assigning the same connected domain number to each voxel grid in the connected domain every time one connected domain is determined, wherein the numbers of different connected domains are different from each other;

step 22: and counting the number of the voxel grids corresponding to each number.

4. The point cloud filtering method of claim 1, wherein the step of determining a mask in step 3 comprises:

step 23: and determining the connected domain number of which the number of the voxel grids is greater than a preset threshold value according to a set threshold value, and reserving the voxel grids corresponding to the corresponding numbers as a mask.

5. The point cloud filtering method according to claim 1, wherein in the step 21, the process of traversing the voxel grid comprises:

step 211: and for any voxel grid, judging whether the current voxel grid is an effective voxel grid and is not traversed, if so, traversing the adjacent voxel grids one by one, and if any adjacent voxel grid is an effective voxel grid, further traversing the adjacent voxel grid of the voxel grid.

6. The point cloud filtering method according to claim 1, wherein the voxel grid division in step 1 is performed by an equal-volume division method.

7. The global point cloud filtering method according to claim 1, wherein the valid voxel grid is a non-empty voxel grid or a voxel grid containing a number of points exceeding a predetermined value.

8. A binocular camera having an image processing module which generates point cloud data based on images acquired by two image sensors, characterized in that the image processing module performs a filtering process on the point cloud data using the method of any one of claims 1 to 7.

9. A computer-readable storage medium, on which a computer program is stored, which program, when being executed by a processor, carries out the method according to any one of claims 1 to 7.

10. A computer device comprising a memory and a processor, on which memory a computer program is stored which is executable on the processor, characterized in that the processor implements the method of any one of claims 1 to 7 when executing the program.

Technical Field

The invention relates to the field of signal processing, in particular to a point cloud-based signal filtering method.

Background

The traditional point cloud filtering method based on local part includes a space unit lattice method, an octree method, a K-d tree method and the like. Zhang Yi et al propose an improved K-nearest neighbor point cloud denoising algorithm, which establishes a topological relation between scattered point clouds through K-nearest neighbor search, and further adopts a Gaussian influence function as a kernel function to estimate the influence of the current measurement point on surrounding neighboring points, thereby limiting noise and eliminating outliers (see published article "research and improvement based on K-nearest neighbor point cloud denoising algorithm"). The beam novelly et al adopts a truncation function of an adaptive angle threshold related to the normal local variance to limit the selection of neighborhood points, calculates the normal vector and the normal local variance of the points and obtains an adaptive optimal neighborhood related to surface features; the improved trilateral filtering method is adopted to realize normal vector filtering and position filtering, and for point cloud data with uniform density and non-dispersed outliers, the algorithm can more effectively maintain detail characteristics and simultaneously obtain smooth discrete surfaces (see published article scattered point cloud noise reduction technical research based on self-adaptive optimal neighborhood).

The point cloud generated by the image-based method is not accurate enough compared with the point cloud acquired by the three-dimensional scanning equipment, and due to the sensitivity of algorithms such as image quality and stereo matching and the difference of the algorithms based on the number of images, the characteristics of point cloud models generated by input target images are different, and the filtering effects of different filtering methods on the point clouds with different characteristics are greatly different. For example, the kalman filter algorithm is to perform optimal estimation on the system state to eliminate the influence of noise and interference in the system, and the algorithm has a good effect on point cloud data directly acquired by a sensor, and the point cloud has the characteristics that the space density is uniform and the surface of a represented object is closed. The point cloud generated based on the binocular stereo image has the characteristics of uneven spatial density distribution, unclosed represented surface and the like due to the missing information of the two-dimensional image shielding relation, and the application of the point cloud with the characteristics to the Kalman filtering is poor. Therefore, the point cloud filtering algorithm is problem-oriented, and needs to be selected and designed according to different characteristics of the point cloud. A good filtering algorithm should meet the requirements that (1) the noise of the filtered point cloud is improved, and most of outliers are removed; (2) the effective point cloud details are not destroyed.

However, the current point cloud filtering algorithm cannot completely satisfy the above two points.

Disclosure of Invention

Aiming at the problems, when the inventor conducts three-dimensional point cloud filtering processing research, the defect in the prior art is found to be caused by the fact that the global topological characteristic of the point cloud is not considered, and the misjudgment of outliers is easily caused by a local filtering method because the density difference of the three-dimensional point cloud calculated based on a binocular image is large in space.

The inventor finds that the use of global spatial topological information of point clouds is beneficial to improving the accuracy of filtering, and further provides a mask-based global point cloud filtering method, which solves the problem of filtering of point clouds, particularly point clouds with large density difference.

According to one aspect of the invention, a mask-based global point cloud filtering method is provided, which is characterized by comprising the following steps:

step 1: determining a bounding box capable of surrounding all points in a target point cloud, and dividing the bounding box to form a plurality of voxel grids;

step 2: dividing each point in the target point cloud into corresponding voxel grids based on coordinates, traversing all the voxel grids, determining a connected domain attribute of each voxel grid, wherein the connected domain attribute is determined based on the effectiveness of the current voxel grid and the number of effective voxel grids directly or indirectly adjacent to the current voxel grid, and determining the voxel grids meeting a set connected domain threshold value based on the set connected domain threshold value to form a mask;

and step 3: and filtering the target point cloud according to the position of the mask, reserving the points covered by the mask, and filtering the points which are not covered by the mask.

In a preferred implementation, the step 1 includes:

step 11: determining the side length of a voxel grid based on the average distance and the sparsity constant of the three-dimensional point cloud;

step 12: determining a bounding box based on the data of the target point cloud, so that each side length of the bounding box is an integral multiple of the corresponding side length of the voxel grid;

step 13: dividing the bounding box into a plurality of voxel grids that are seamlessly docked with one another;

step 14: for each point, its voxel lattice assignment is determined.

In another preferred implementation, in step 2, the step of determining the connected domain attribute of each voxel grid includes:

step 21: traversing all the voxel grids, determining a connected domain of each voxel grid, and assigning the same connected domain number to each voxel grid in the connected domain every time one connected domain is determined, wherein the numbers of different connected domains are different from each other;

step 22: and counting the number of the voxel grids corresponding to each number.

In another preferred implementation, the step of determining the mask in step 3 includes:

step 23: and determining the connected domain number of which the number of the voxel grids is greater than a preset threshold value according to a set threshold value, and reserving the voxel grids corresponding to the corresponding numbers as a mask.

In another preferred implementation, in the step 21, the process of traversing the voxel grid includes:

step 211: and for any voxel grid, judging whether the current voxel grid is an effective voxel grid and is not traversed, if so, traversing the adjacent voxel grids one by one, and if any adjacent voxel grid is an effective voxel grid, further traversing the adjacent voxel grid of the voxel grid.

In another preferred implementation manner, when the voxel grid division is performed in step 1, an equal-volume division manner is used.

In another preferred implementation, the valid voxel grid is a non-empty voxel grid or a voxel grid containing a number of points exceeding a predetermined value.

According to another aspect of the present invention, a binocular camera is provided, which has an image processing module that generates point cloud data based on images acquired by two image sensors, wherein the image processing module performs filtering processing on the point cloud data by using the above method.

According to another aspect of the invention, a computer-readable storage medium is provided, on which a computer program is stored, wherein the program, when executed by a processor, implements the method described above.

According to another aspect of the present invention, there is provided a computer device comprising a memory and a processor, the memory having stored thereon a computer program operable on the processor, characterized in that the processor implements the method described above when executing the program.

Technical effects

According to the invention, through the investigation of the global information of the three-dimensional point cloud, the voxel grid size is determined according to the point cloud average interval, the voxel grid division is carried out on the three-dimensional point cloud, and then a mask is obtained according to a self-defined connected domain and is used for describing the global space topological information of the point cloud, the filtering is carried out according to the topological information, the point cloud covered by the mask is reserved, and the point cloud not covered by the mask is removed. By adopting the method, the accuracy of point cloud filtering can be effectively improved. The method has better effect on the point clouds with larger difference in space density degree, can effectively remove outliers in the original point clouds, and better keeps the detail information of the point clouds.

Drawings

The invention is illustrated and described only by way of example and not by way of limitation in the scope of the invention as set forth in the following drawings, in which:

FIG. 1 shows a visualization graph of 26 connected regions;

FIG. 2 illustrates a flow chart of the mask-based global point cloud filtering method of the present invention;

FIG. 3 is an exemplary point cloud raw data;

FIG. 4 is a schematic view of mask visualization;

FIG. 5 is filtered point cloud data;

FIG. 6 is a graph of voxel grid filtering results and error analysis results;

FIG. 7 is a graph of the voxel grid filter optimization algorithm results and error analysis results;

FIG. 8 is a graph of k-neighbor filtering results and error analysis results;

fig. 9 shows the effect comparison data of the comparison experiment using different filtering methods.

Detailed Description

In order to make the objects, technical solutions, design methods, and advantages of the present invention more apparent, the present invention will be further described in detail by specific embodiments with reference to the accompanying drawings. It should be understood that the specific embodiments described herein are merely illustrative of the invention and are not intended to limit the invention.

It should be noted that the term "average distance of point clouds" mentioned in the present invention refers to: and calculating the minimum distance from each point to other points, wherein the average value of the sum of all the minimum distances is the point cloud average interval.

The term "26 connected region" referred to in the present invention means: a voxel grid in a given space is used as a center to establish a region with the side length being three times that of the voxel grid (the length, the width and the height are three times of the corresponding side length of the voxel grid respectively), the region comprises 27 voxel grids, the center voxel grid is removed, and the remaining 26 voxel grids are 26 connected regions of the voxel grid, as shown in fig. 1.

The term "voxel lattice valid" as referred to in the present invention means that the point cloud contained within the voxel lattice is not empty or the number of points is larger than a predetermined required value.

The term "voxel lattice connected" referred to in the present invention means: for a certain voxel lattice, if the voxel lattice is valid and there is a certain valid voxel lattice in the 26 connected region of the voxel lattice, the two voxel lattices are said to be spatially connected.

The term "connected domain" referred to in the present invention refers to a set of all voxel lattices having a voxel lattice connected property.

The term "mask" as referred to in this invention refers to a set of connected domains that contain inside them a voxel grid number greater than a given threshold.

Example 1

As shown in fig. 2, the mask-based global point cloud filtering method in this embodiment mainly includes the following steps: 1. carrying out space management on the three-dimensional point cloud coordinate data to construct a voxel grid; 2. performing point cloud data distribution, determining the attribute of a connected domain, and determining the connected domain meeting a threshold value based on a set threshold value of the connected domain to form a mask; 3. and filtering the target point cloud by using the mask.

Next, each step will be explained.

1. And carrying out space management on the three-dimensional point cloud coordinate data to construct a voxel grid.

The main purpose of performing space management on the three-dimensional point cloud coordinate data is to establish a topological structure between discrete point clouds and further divide the point cloud data into different voxel grids. According to one embodiment of the invention, the step comprises:

step 11: and calculating the side length of the voxel grid based on the average distance of the three-dimensional point cloud. The average distance of the three-dimensional point cloud needs to be calculated first. When calculating, the minimum distance from each point to all other points is calculated, and the average distance is defined as the average value of the sum of all the minimum distances. The calculation formula is as follows, S is a point cloud set, xiAnd xjIs a certain point cloud three-dimensional coordinate, and n is the number of point clouds.

Taking the point cloud data corresponding to the picture shown in fig. 3 as an example, the average interval obtained through calculation is 1.318, and the side length d of the voxel grid is equal to the average distance of the three-dimensional point cloud multiplied by the sparsity constant K. In this embodiment, the sparsity constant k is 3.85 (the constant is an empirical value determined according to different point cloud types), and the calculation result is 5.07.

Step 12: bounding boxes are determined based on the input three-dimensional point cloud data. And (3) solving the boundaries of the point cloud on the x, y and z axes according to the three-dimensional coordinates of the input point cloud so as to determine an AABB (Axially Aligned Bounding Box). Preferably, the bounding box is a rectangular body, the three axes are respectively parallel to the three coordinate axes, the bounding box encloses all three-dimensional point cloud data as compactly as possible, for example, the difference value between the maximum abscissa and the minimum abscissa in the point cloud is selected as the lateral side length of the bounding box, and other sides are similarly processed. When a certain side length a of the bounding box cannot be exactly divided by the voxel grid side length d calculated in step 11, the corresponding side length a of the bounding box is adjusted to a', which is expressed as:

in this way, rounding up, and so on, may be performed to determine the three side lengths of the voxel grid such that the bounding box is divided equally into the individual voxel grids.

Step 13: and based on the side length of the voxel grids obtained in the step 11, dividing the voxel grids in the bounding box obtained in the step 12, wherein three axes of the voxel grids are respectively parallel to three coordinate axes, and all the voxel grids are arranged in a seamless and compact manner.

Step 14: for each three-dimensional point, it is calculated which voxel grid the point is surrounded by, and the point is assigned to that voxel grid, as obtained in step 13.

According to one embodiment of the invention, all voxel grids are initialized. For example, three attributes of the initialized voxel grid are a vertex attribute, a connected domain number attribute, and a traversal attribute. The vertex attribute is used for storing the three-dimensional coordinates of the point cloud contained in the voxel grid; the connected domain number attribute is used for marking the number of the connected domain to which the current voxel lattice belongs; the traversal attribute is a boolean value that is used to flag whether the current voxel grid has been traversed by the program.

Traversing all points in the point cloud, calculating a voxel grid where each point is located according to the three-dimensional coordinates, adding the coordinates of the voxel grid to the vertex attribute of the voxel grid, and if no point exists in the voxel grid, enabling the vertex attribute to be null. The connected component number attribute of all voxel grids is set to 0, and the traversal attribute is set to no.

Therefore, the three-dimensional point cloud coordinate data can be subjected to space management, a topological structure between discrete point clouds is established, the side length of a voxel grid is determined in a self-adaptive mode, and the point cloud data are divided into different voxel grids.

2. Determining a mask consisting of particular voxel blocks based on the connected domain, the step comprising:

step 21: all voxel grids are traversed. Through the step 1, initialized voxel grids are obtained, and each voxel grid has corresponding coordinates. In one example, let the first voxel grid coordinate be (1,1,1) and the last voxel grid coordinate be (78,83,34), for a total of 220116 voxel grids, the voxel grids are traversed sequentially. And calculating the connected domain of each voxel grid, and assigning a serial number of a connected domain area to each voxel grid.

According to one embodiment of the invention, the process of traversing in step 21 may be broken down into the following sub-steps:

step 211: judging whether the current voxel grid contains points in the target point cloud (or the number of the points exceeds a preset value) and the points are not traversed, if the result is true (the conditions meet the requirements), executing step 212; if the result is false (either of the two conditions is not satisfied), the determination is performed on the next voxel grid, that is, step 211 is performed on the next voxel grid; if there is no next voxel grid (all voxel grids are traversed), step 21 is done.

Step 212: judging whether the current voxel grid contains points in the target point cloud (or the number of the points exceeds a preset value) and is not traversed, and the coordinates of the current voxel grid exist (namely, the coordinates do not exceed the range of the bounding box), if the current voxel grid is true (the conditions meet the requirements), marking the current voxel grid as traversed, executing a step 213, and performing 26 connected domain traversal based on the current voxel grid; if the result is false (any one of the above conditions is not met), executing the previous step of the step (i.e. jumping to the step 212, namely the jump source of the current step, if the current step 212 jumps from the step 211, jumping to the jump source of the current step, if the current step 212 jumps from the step 211, jumping back to the step 211 in the previous cycle, continuing to judge the next voxel grid, if the current step 212 jumps from the step 213, jumping back to the step 213 in the previous cycle, continuing to execute the step 213 in the previous cycle, and judging other voxel grids in the 26-connected region until all the 26-connected regions are judged to be finished);

step 213: and assigning the current global connected domain number to the current voxel grid, and performing 26 connected domain traversals related to the current voxel grid by taking the current voxel grid as the center. For example, step 212 is performed sequentially for the voxel grids in the 26-pass region of the current voxel grid (26 cycles), i.e., each time one 26-pass domain direction is selected, which is (0,0,1), (0,0, -1), (0,1,0), (0, -1,0), (1,0,0), (-1,0,0), (1,1,0), (1, -1,0), (1,0,1), (1,0, -1), (0,1, -1), (-1,1,0), (-1, -1,0), (-1,0,1), (-1,0, -1), (0, -1, -1), (1,1, -1), and-, (1, -1,1), (1, -1, -1), (-1,1, -1), (-1, -1, -1,1), (-1, -1, -1), adding the selected direction and the current voxel grid coordinate to obtain a new coordinate corresponding to the voxel grid as the current voxel grid, executing step 212, selecting a different direction each time to perform voxel grid coordinate transformation, as the current voxel grid in step 212, performing voxel grid traversal until 26 directions are selected once; if, in the voxel lattice traversal process with the voxel lattice initially selected in step 211 as the center, the voxel lattices in the 26 connected regions of each traversed voxel lattice are completely traversed (for example, one voxel lattice (2,2,2) is selected in step 211, and if it is determined that it is true, it is necessary to completely traverse the voxel lattices in the 26 connected domain directions of the voxel lattice and completely traverse the voxel lattices in direct or indirect connection with the 26 voxel lattices in the 26 connected domain directions), step 214 is executed.

Step 214: the global connected component number is incremented by 1 (the number is initially 1 and is incremented by 1 each time step 214 is passed), and then step 211 is performed on the next voxel grid, i.e. the next connected component number is incremented by one compared to the previous connected component.

After step 21, each valid voxel grid is assigned a connected component number, and different connected components can be numbered sequentially, so that each connected component is assigned a different number.

In other words, in this step, the voxel grids are connected into independent connected domains by applying depth-first search, and the voxel grids included in each connected domain are labeled with connected domain numbers.

Step 22: and counting the number m of the voxel grids corresponding to each number.

Step 23: according to the set threshold, comparing the number m of the voxel grids corresponding to each number with the corresponding connected domain number threshold, wherein the number m of the voxel grids corresponding to the number is greater than or equal to the threshold is marked as 1, the number m of the voxel grids smaller than the threshold is marked as 0, the number m of the voxel grids corresponding to the number is greater than or equal to the threshold, the number m of the voxel grids corresponding to the number is reserved, the number m of the voxel grids corresponding to the number is defined as a mask, and the rest of the voxel grids are discarded, as shown in fig. 2. For example, in one embodiment, 56 voxel grids with a connected component number of 1, 4 voxel grids with a connected component number of 32, and a threshold value set to 20, are reserved, and those voxel grids with a voxel grid number greater than 20 corresponding to all connected component numbers are defined as a mask of the point cloud in this embodiment to describe the spatial topology information of the point cloud.

And 2, obtaining connected domains to be reserved through statistical calculation, and forming a mask by using the connected domains to describe the global topological information of the three-dimensional point cloud.

Finally, step 3 is executed: and filtering the target point cloud according to the position of the mask, reserving the points covered by the mask, and filtering the points which are not covered by the mask.

To further verify the effects of the present invention, the inventors conducted comparative experiments. Next, the expansion compares the point cloud images at each stage of data processing. Fig. 3 to 9 show the comparison between a specific point cloud raw data and filtered data obtained by different filtering methods, where fig. 3A is the raw point cloud data calculated according to a disparity map output by a network based on the principle of triangulation, and fig. 3B is a view of using a groudtuth point cloud for comparison. It can be seen that the unprocessed point cloud data has many outliers that affect subsequent processing.

The original point cloud data in fig. 3 is processed by applying the point cloud filtering method of the present invention, wherein the average interval of the point clouds is 1.318, and the length of the side of the voxel grid is 5.07 by multiplying the average interval of the point clouds by an adaptive constant k. The connected component threshold is 40. The method comprises the steps of carrying out visualization processing on a mask used in the filtering process, as shown in fig. 4, enabling a plurality of voxel grids to be semitransparent dark grids, enabling the voxel grids to form a plurality of connected domains meeting conditions, further combining the connected domains to form the mask, and enabling a point cloud reserved inside the mask to be seen through the dark voxel grids, so that the mask generated by the algorithm can summarize global topology information of the point cloud.

The filtering effect of the method finally adopted by the invention is shown in fig. 5 after the point cloud covered by the mask is retained and filtered out, fig. 5B is an auxiliary disparity map obtained based on point cloud-disparity map inverse mapping, and fig. 5C is filtering error analysis, wherein light color points are correct filtering points, and dark colors are wrong filtering points.

Then, the other three methods are used for comparing the filtering effects, namely k-adjacent point filtering, voxel grid filtering and optimization algorithms thereof, and the quantitative error analysis is carried out together with the filtering method of the invention. The characteristic of scattered three-dimensional point clouds makes it difficult to directly use standard point clouds and filtered point clouds to carry out quantitative error analysis, and point clouds based on binocular vision are obtained by mapping from a disparity map. Error analysis can then be performed by comparing the auxiliary disparity map with the true disparity map.

The voxel grid filter result analysis is shown in fig. 6. Fig. 6A is a voxel grid filtering result, fig. 6B is an auxiliary disparity map obtained based on point cloud-disparity map inverse mapping, fig. 6C is filtering error analysis, where a light color point is a correct filtering point, a dark color point is an incorrect filtering point, a union of the two is a two-dimensional mapping of all points filtered by voxel grid filtering, and it can be seen from both the map and the red circle of fig. 6A that the edge of a point cloud portion and an inner sparser region are mistakenly identified as noise, resulting in a notch, and some true outliers are not filtered.

The filtering effect of the voxel grid filtering optimization algorithm and the error analysis chart are shown in fig. 7. The algorithm not only considers each attribute in the current processing voxel grid, but also considers the attributes of each voxel grid around the current processing voxel grid, and then the conclusion whether the current voxel grid is filtered or not is comprehensively obtained. From the comparison between fig. 6A and fig. 7A, it can be seen that there are fewer holes caused by the wrong filtering in the point cloud, but there are still defects in the dark circles in fig. 7A, and at the same time, it can be seen in more detail through 7C that the edges of the point cloud and the interior of the point cloud still have more effective points that are mistaken as noise.

The k-neighbor filtering effect and error analysis are shown in fig. 8. The algorithm examines the distance average value of the nearest k points around the current point, if the distance average value is smaller than a set threshold value, the point is reserved, otherwise, the point is judged as a noise point and is deleted. Experiments finally determine that k is 15 points, the threshold value is 0.1, the effect is good, and the filtering result is shown in fig. 8A. It can be seen from the figure that a large number of edge points are mistakenly judged as noise points and are filtered out.

The accuracy of the filtering of each method is compared, the comparison result is shown in detail in fig. 9, and it can be seen that the accuracy of the filtering method is highest in each method for the point clouds with large difference in spatial density degree.

The point cloud processed by the method is mapped to three dimensions from two dimensions, and the density in space has difference, under the condition, the distance or voxel grid based method is easily interfered by the difference, points in some sparse areas, such as edge points or internal points, are judged as noise and filtered, and outliers with higher aggregation degree are reserved; secondly, the above three filtering methods all filter by local features of points, and although the filtering method of fig. 7 considers the situation around the grid, the nature is to expand the utilized local information. Whether a certain point is too noisy or not is judged based on local features, and global topology information of point cloud is not utilized, so that the probability of misjudgment in the occurrence of the first reason is increased.

The point cloud filtering algorithm provided by the invention solves the problems, and the detailed execution process of the method and the result of the graph in FIG. 5 are combined to show that the method cannot be misjudged due to density difference of effective point clouds, the filtering result displayed in the graph in FIG. 5C is basically correct, and the points in the point clouds and the edge detail points are not mistakenly filtered; the visualization of the mask in fig. 4 shows that the method performs filtering by using the global topology information of the point cloud, so that the accuracy is higher, and the final filtering result is relatively better.

In summary, the invention performs adaptive voxel grid division by calculating the parameters of the three-dimensional point cloud data, further performs spatial management on the three-dimensional point cloud data to obtain the spatial topological structure of the point cloud, and finally correctly filters outliers. The method has robustness on point cloud with uneven density, outliers can be effectively removed, point cloud details are kept, and the filtering effect of point cloud data with large density difference is improved. The method is preferably used for point clouds generated by binocular stereo pictures and having large difference in space sparsity.

The present invention may be embodied as methods and/or computer program products. The computer program product may include a computer-readable storage medium having computer-readable program instructions embodied therewith for causing a processor to implement various aspects of the present invention.

Having described embodiments of the present invention, the foregoing description is intended to be exemplary, not exhaustive, and not limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is chosen in order to best explain the principles of the embodiments, the practical application, or improvements made to the technology in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种复杂节点模型的尺寸标注方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!