This application claims priority to Chinese Patent Application No. 201310498681.4 filed on Oct. 22, 2013, the contents of which are incorporated by reference herein.
The present disclosure relates to point cloud processing technique, and particularly to a device and method for removing noise points in a point cloud.
Three-dimensional (3D) scanners measure a large number of points on an object's surface, and output a point cloud as a data file. In a 3D coordinate system, points in the point cloud are usually defined by X, Y, and Z coordinates, and often are intended to represent the external surface of an object.
There may be many noise points mixed within the point cloud, usually, 0.1%-5%. The noise points would influence the processing speed and accuracy of the point cloud.
Many aspects of the disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily drawn to scale, the emphasis instead being placed upon clearly illustrating the principles of the disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
It will be appreciated that for simplicity and clarity of illustration, where appropriate, reference numerals have been repeated among the different figures to indicate corresponding or analogous elements. In addition, numerous specific details are set forth in order to provide a thorough understanding of the embodiments described herein. However, it will be understood by those of ordinary skill in the art that the embodiments described herein can be practiced without these specific details. In other instances, methods, procedures and components have not been described in detail so as not to obscure the related relevant feature being described. Also, the description is not to be considered as limiting the scope of the embodiments described herein. The drawings are not necessarily to scale and the proportions of certain parts may be exaggerated to better illustrate details and features of the present disclosure.
Several definitions that apply throughout this disclosure will now be presented.
The word “module,” as used hereinafter, refers to logic embodied in hardware or firmware, or to a collection of software instructions, written in a programming language, such as, for example, Java, C, or assembly. One or more software instructions in the modules may be embedded in firmware. It will be appreciated that modules may comprise connected logic units, such as gates and flip-flops, and may comprise programmable units, such as programmable gate arrays or processors. The modules described herein may be implemented as either software and/or hardware modules and may be stored in any type of non-transitory computer-readable storage medium or other computer storage device. The term “comprising,” when utilized, means “including, but not necessarily limited to”; it specifically indicates open-ended inclusion or membership in the so-described combination, group, series and the like.
In at least one embodiment, the at least one storage device 11 can include an internal storage system, such as a flash memory, a random access memory (RAM) for temporary storage of information, and/or a read-only memory (ROM) for permanent storage of information. The storage device 11 can also include an external storage system, such as an external hard disk, a storage card, or a data storage medium. The at least one control device 12 can include a central processing unit (CPU), a microprocessor, or other data processing chip that can perform various functions of the computing device 1. The display device 13 can be a screen of the computing device 1.
The data receiving module 100 can receive a point cloud of an object and further receive predetermined parameters relating to the point cloud. The point cloud may be obtained from the storage device 11 of the computing device 1 or obtained from a 3D scanner. As mentioned above, the point cloud includes points on the object's surface, and can be defined by X, Y, and Z coordinates. In at least one embodiment, the predetermined parameters include a predetermined point distance and a predetermined point number.
The point cloud process module 101 can triangulate the point cloud and construct a triangular mesh surface, and divide the point cloud into a plurality of subsets according to the triangular mesh surface and the predetermined parameters.
In at least one embodiment of dividing the point cloud into a plurality of subsets, the point cloud process module 101 randomly selects a point in the point cloud, and puts the selected point into a first subset, then computes a distance between the selected point and adjacent points of the selected point in the point cloud. The adjacent points include points that are in a same triangle with the selected point. Referring to
The computation module 102 can select each of the subsets, compute point distances between each point in the selected subsets and all points in adjacent subsets of the selected subsets, and further compute subset distances between the selected subset and each of the adjacent subsets according to the point distances. It may be understood that, the adjacent subsets are subsets including points which are in same triangles with points in the selected subset. Referring to
Depending on the example, the computation module 102 may select the subset 1, the subset 2, the subset 3, and the subset 4 one by one. When the subset 1 is selected, the computation module 102 computes point distances between each points in the subset 1 and all points in the subset 2 and the subset 4. When the subset 2 is selected, the computation module 102 computes point distances between each point in the subset 2 and all points in the subset 1 and subset 3. When the subset 3 is selected, the computation module 102 computes point distances between each points in the subset 3 and all points in the subset 2 and subset 4. When the subset 4 is selected, the computation module 102 computes point distances between each point in the subset 4 and all points in subset 1 and the subset 3.
In at least one embodiment, the subset distance between the selected subset and each of the adjacent subsets can be the minimum point distance.
The noise point removing module 103 can determine noise points in each of the subsets according to a number of points in each of the subsets, the predetermined parameters, and the subset distances, and generate a filter point cloud by removing the noise points from the point cloud. In at least one embodiment, when the number of points in a subset is less than the predetermined point number, all points in the subset are considered as the noise points. In another embodiment, when the number of points in a subset is less than the predetermined point number and the subset distance between the subset and at least one of the adjacent subsets is greater than a predetermined subset distance, all points in the subset are considered as the noise points. In at least one embodiment, the predetermined subset distance may be twice of the predetermined point distance.
The output module 104 can output the filtered point cloud using the display device 13 of the computing device 1.
At block 302, a data receiving module receives a point cloud of an object and further receives predetermined parameters relating to the point cloud. The point cloud may be obtained from a storage device or obtained from a 3D scanner. As mentioned above, the point cloud includes points on the object's surface, and can be defined by X, Y, and Z coordinates. In at least one embodiment, the predetermined parameters include a predetermined point distance and a predetermined point number.
At block 304, a point cloud process module triangulates the points in the point cloud, and constructs a triangular mesh surface.
At block 306, a point cloud process module divides the point cloud into a plurality of subsets according to the triangular mesh surface and the predetermined parameters. A detailed description of block 306 is shown in
At block 308, a computation module selects each of the subsets, computes point distances between each point in the selected subsets and all points in adjacent subsets of the selected subsets, and further computes subset distances between the selected subset and each of the adjacent subsets according to the point distances.
It may be understood that, the adjacent subsets are the subsets including points which are in the same triangles with points in the selected subset. Referring to
Depending on the example relating to
In at least one embodiment, the subset distance between the selected subset and one of the adjacent subsets can be the minimum point distance.
At block 310, a noise point removing module determines noise points in each of the subsets according to a number of points in the each of the subsets, the predetermined parameters, and the subset distances, and generates a filter point cloud by removing the noise points from the point cloud. In at least one embodiment, when the number of points in a subset is less than the predetermined point number, all the points in the subset are considered as the noise points. In another embodiment, when the number of points in a subset is less than the predetermined point number, and furthermore, the subset distance between the subset and at least one of the adjacent subsets is greater than a predetermined subset distance, all the points in the subset are considered as the noise points. In at least one embodiment, the predetermined subset distance may be twice of the predetermined point distance.
At block 312, an output module outputs the filtered point cloud using a display device.
At block 402, the point cloud process module selects a point in the point cloud, and puts the selected point into a subset. Initially, the selection of the point may be random.
At block 404, the point cloud process module computes a distance between the selected point and adjacent points of the selected point in the point cloud. In at least one embodiment, the adjacent points can include points that are in a same triangle with the selected point. Referring to
At block 406, the point cloud process module filters the adjacent points to find one or more of the adjacent points whose distance to the selected point is less than a predetermine point distance, and puts the filtered adjacent points into the subset.
At block 408, the point cloud process module determines if there is a point in the subset not being selected by the point cloud process module. For example, at block 402, the point cloud process module selects the point A, and puts this point A into the subset, and at block 406, the point cloud process module puts the filtered adjacent points B and C into the subset, then the points B and C are not selected. When there is a point in the subset not being selected, block 410 is implemented, and when there is no point in the subset not being selected, block 412 is implemented.
At block 410, the point cloud process module selects a point that has never been selected from the subset, then, blocks 404, 406, and 408 are implemented repeatedly.
At block 412, the point cloud process module determines if there is a point in the point cloud not being selected, that is, if there is a point in the point cloud not being inputted to any subset. When there is a point in the point cloud not being selected, block 414 is implemented, and when there is no point in the point cloud not being selected, the procedure ends.
At block 414, the point cloud process module selects a point that has never been selected from the point cloud, and puts the selected point into a next subset. Then, blocks 404, 406, and 408, 410, and 412 are implemented repeatedly.
The embodiments shown and described above are only examples. Many details are often found in the art. Therefore, many such details are neither shown nor described. Even though numerous characteristics and advantages of the present technology have been set forth in the foregoing description, together with details of the structure and function of the present disclosure, the disclosure is illustrative only, and changes may be made in the detail, especially in matters of shape, size and arrangement of the parts within the principles of the present disclosure, up to and including, the full extent established by the broad general meaning of the terms used in the claims. It will therefore be appreciated that the embodiments described above may be modified within the scope of the claims.
Number | Date | Country | Kind |
---|---|---|---|
201310498681.4 | Oct 2013 | CN | national |