From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

kl3m3n's blog

Community Browser
cancel
Showing results for 
Search instead for 
Did you mean: 

Re: Point cloud registration tool

Klemen
Active Participant

Hello,

I am attaching an application (with graphical user interface - GUI) that can be used to register/align a pair of point clouds. Filtering can also be performed prior to the registration process. The application is partially inspired by Geomagic's cloud registration functionality (although my interface is not nearly as fancy ). There are three registration possibilities:

  1. Manual registration, based on manually selecting the corresponding points on two point clouds (using PCL),
  2. Sample consensus initial alignment, based on descriptors that are extracted from the two point clouds (using PCL),
  3. ICP registration, which produces very similar results as the Geomagic's global registration - at least on the datasets I've tested (using trimesh2). The algorithm is fast and more information can be found in the paper "Efficient Variants of the ICP Algorithm" by Rusinkiewicz S and Levoy M. I used the trimesh2 library because I wasn't getting good results with the PCL's ICP algorithm (using the classical ICP from PCL 1.6.0). I have not tried to create my own ICP pipeline as suggested on the PCL forums. Possibly this would provide much better results.

Figure 1 shows the main user interface with two triangulated point clouds that need to be registered.

registrationTool_1.png

Figure 1. Main window of the application.

Clouds from Figure 1 cannot be aligned with ICP directly, so some preprocessing is necessary. Figure 2 shows the user interface for manual registration. The transformed cloud based on the manual registration and target  cloud are shown at the bottom of the interface.

registrationTool_2.png

Figure 2. Interface for manual registration.

By selecting "OK", the transformation values are passed to the main window and the transformation matrix indicator is updated accordingly (see Figure 3).

registrationTool_3.png

Figure 3. Manual registration.

Performing the ICP improves the result by minimizing the errors and the transformation matrix indicator gets updated (see Figure 4). Multiple ICP routines can be executed by clicking on the ICP button.

registrationTool_4.png

Figure 4. ICP registration.

In every step, the clouds can be visualized in main window as points (see Figure 5) or surfaces (see Figures 1,3,4).

registrationTool_5.png

Figure 5. Data from figure 4 visualized as points.

Additional information on the controls and indicators can be found by clicking on the Help->Instructions on the top-left corner of the GUI (see Figure 6).


registrationTool_6.png

The requirements to run the application are PCL 1.6.0 and Qt 4.8.0, where you need to add the "bin" paths to the PATH system variables.

The application is at this time provided as .exe only and can be found in the attached .zip file. The .zip file is password protected in order to potentially avoid the virus scanning during upload. The password is in the attached .txt file.

There are possibly some bugs - if you test the application and have the time, please provide feedback.One of the bugs is related to the manual registration only after re-opening the manual registration window. The picked points are not always displayed on the cloud, although they are registered (see the cmd output window).

P.S.: The input cloud(s) must be in the .pcd format. Example (column 1 - X data, column 2 - Y data, column 3 - Z data):

# .PCD v0.7 - Point Cloud Data file format

VERSION 0.7

FIELDS x y z

SIZE 4 4 4

TYPE F F F

COUNT 1 1 1

WIDTH 3171

HEIGHT 1

VIEWPOINT 0 0 0 1 0 0 0

POINTS 3171

DATA ascii

10.000000    25.000000    -5.000000

11.000000    26.000000    -4.000000

14.000000    29.000000    -1.000000

-112.290000    164.349000    82.436000

-111.669000    159.135000    85.179000

-110.629000    154.515000    91.104000

...                    ...                   ...

Best regards,

K


https://decibel.ni.com/content/blogs/kl3m3n



"Kudos: Users may give one another Kudos on the forums for posts that they found particularly helpful or insightful."
Download All
Comments
Tan3D
Member

Nice work !!

Can you provide the source code of tool ? I am intersested to know how you selected manually corresponding points. Also i want to know how to run the tool on ubuntu

 

Thanks in Advance !!

 

geucimar
Member

Thank you!

Could you share the code please?

张斌
Member

3D Vision Advanced Toolkit For LabVIEW

张斌_3-1616117031640.png

 

 

http://sine.ni.com/nips/cds/view/p/lang/zhs/nid/217368

The toolkit mainly includes a 3D point cloud processing library, a triangle mesh processing library, a 3D picture interactive library, and a height field data processing library.

1)3D point cloud processing library

张斌_4-1616117031522.png

 

 


The 3D point cloud processing library includes point cloud simplification, point cloud smoothing, point cloud clustering analysis, point cloud rendering and storage.

2)triangle mesh processing library

张斌_5-1616117031424.png

 

张斌_6-1616117031351.png

 


The triangular mesh processing library includes point cloud triangular mesh reconstruction (3 methods), mesh hole analysis and filling, mesh smoothing, mesh section calculation, area volume calculation, 3D mesh rendering and storage.

The triangular mesh processing library includes point cloud triangular mesh reconstruction (3 methods), mesh hole analysis and filling, mesh smoothing, mesh section calculation, area volume calculation, 3D mesh rendering and storage.

3)3D picture interactive library

 

张斌_0-1616116985609.png

 

 


The 3D picture interactive library mainly provides methods for selecting the point cloud and 3D grid in the 3D picture control by frame selection and polygon selection.

4)height field data processing library

张斌_1-1616116985749.png

 

 


The height field data processing library includes functions such as height field data smoothing, height field data triangular mesh reconstruction, four-corner mesh reconstruction, rendering and storage.

 

Email: Technology@cos-3d.com

 

 

张斌_2-1616116985488.jpeg