Topic: 3D Point Cloud Registration is the process of finding a spatial transformation (e.g., scaling, rotation and translation) that aligns two or more point clouds. A point cloud is a set of data points in space, and each
point has its set of X, Y and Z coordinates. The point cloud registration problem nowadays can be solved using Tools and Databases.

Exercise: You are asked to build the Iterative Closest Point (ICP) algorithm from scratch in Python. The dataset for testing can be any 3D point-cloud with datatype .xyz file. The output of the registration algorithms is the spatial transformation   R_x, R_y, R_z, T_x, T_y, T_z as well as some visual feedback of the transformation. Specifically you will have to :

  • Choose a Pointcloud of type .xyz
  • Apply a transformation at this pointcloud in order to produce a transformed (rotation and translation) pointcloud of the original. (We provide help functions for this particular task)
  •  Build the ICP algorithm from scratch in Python, in order to perform “point-to-point” matching.
  • Your script must output the estimated transformation between these two point-clouds, and comparing it with the transformation you actually applied. These two should match.

Instructions and Material for solution:

Tools: There is a wide variety of open-source tools implemented for this particular matter:

Databases: There are plenty of free – 3D point cloud databases (educational) available online. For reference we provide you with the TOSCA dataset: http://tosca.cs.technion.ac.il/book/resources_data.html 

Help (if needed): Click Pdf and code to download the exercise help.

Lecture for better understanding: https://icarus.csd.auth.gr/image-registration-lecture/

This exercise was developed by S. Ginargyros.

————————————————————————————————————–

For the solutions to the exercises, please contact koroniioanna@csd.auth.gr