Point Cloud Registration in MeshLab

Source: Internet
Author: User

The MeshLab is an open-source, portable, and extensible three-dimensional geometric processing system used primarily for interactive processing and unstructured editing of triangular meshes. It supports multiple file formats:



Import:PLY, STL, OFF, OBJ, 3DS, COLLADA, PTX, V3d, PTS, APTS, XYZ, GTS, TRI, ASC, X3d, X3DV, VRML, ALN

Export:PLY, STL, OFF, OBJ, 3DS, COLLADA, VRML, DXF, GTS, U3d, IDTF, X3d




Let's try the point cloud registration function in MeshLab, in order to verify, we need to first create two point clouds with position attitude mismatch. Here using the open source three-dimensional modeling software blender, first in Blender press x key to delete the default cube, press Shift+a to create a monkey Suzanne (Suzanne is Blender's alternative to more common Test models such as the Utah teapot and the Stanford Bunny), then add a modifier, subdivision surface set render to 1 and click Apply.





It is then exported to a file in ply format (ply file format is a three-dimensional mesh model data format developed by Stanford University that allows files to be stored in ASCII or binary format, ply is a common and important file format in the field of graphics research)





The hedgehog is then panned and rotated in blender to another location, where 2 units are shifted along the XYZ axis (using keyboard commands in Blender: GX2, GY2, GZ2), then rotated -45° (RZ-45) around the z-axis, and finally outputting it as a ply file.








The transformation matrix T corresponding to this transformation is:






Importing these two files in MeshLab, the render mode is selected as a point to see two point clouds, as shown in.





Then click on the Align button on the toolbar to register, and a Align Tool dialog box pops up. The first thing to do is to select the reference point cloud, where there is no translation of the original point cloud as a reference, and then click Glue here Mesh, and then the dot cloud name will appear preceded by an asterisk.





Then select a different point cloud, click on Based glueing, then pop up a window, the two point cloud manually select the match point, at least 4 pairs of points after the click OK Confirmation. Double-click the left mouse button to select, CTRL + Double click to dismiss selection.





After that, the two point clouds are basically coincident, and an asterisk appears before the second point cloud name. After the initial registration, we will perform the ICP registration, note The default parameters in the ICP default Param, and modify as needed. If our two-point cloud is the same size, tick rigid matching selection. If we do not tick, there will be a scaling factor in the final transformation matrix.


  • Number of sample points (sample numbers): This is the samples it pulls from each mesh to compare to the other meshes. You don't want to make this number too big. A small sample typically works quiet well. The 5,000 is usually plenty.
  • Minimal starting Distance:this ignores any samples that is outside of this range. Typically for a manually aligned object you want this to is large enough to encompass your ' point picking ' error. A value of 5 or ten (in millimeters) is usually a good start. Once The initial alignements is complete, drop it down to 1mm to ' fine tune '
  • Target distance (equivalent to mean square error MSE): Anaverage alignment error value , the software Would try to obtain from the process
  • Maximum iterations (max iteration numbers): The maximum number ofiterations that software'll perform




After clicking on the process, the software starts to calculate automatically, saves the project as a AlN file (Align project), and then opens it with a text editor, and you can see that each point cloud in the Align file has a rotation matrix representing its position and posture.


1.ply
#
1.000000 -0.000000 -0.000000 -0.000000 
0.000000 1.000000 0.000000 -0.000000 
0.000000 -0.000000 1.000000 -0.000000 
0.000000 0.000000 0.000000 1.000000 
2.ply
# 0.706755 -0.707458 0.000400 0.000489 
0.707458 0.706755 0.000011 -2.828475 
-0.000291 0.000275 1.000000 -1.999996 
0.000000 0.000000 0.000000 1.000000


The matrix that transforms the hedgehog from position 2 to position 1 is T1:





The comparison shows that the Align Registration tool in MeshLab correctly calculates the transformation matrix T1. It should be noted that you should not assume that the moving component in the inverse matrix is ( -2,-2,-2) T, referring to the 2nd Chapter--spatial descriptions and transformations in the introduction of robotics.



The homogeneous transformation matrix Tof the known b→a, then the a→b matrix, t1, is as follows:



Reference:



http://blog.csdn.net/szchtx/article/details/7587999



http://download.csdn.net/detail/chx_man/6314891



Point Cloud Registration in MeshLab


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.