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 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:
- PCL- Point Cloud Library: https://github.com/PointCloudLibrary/pcl
- Pointmatcher: https://github.com/ethz-asl/libpointmatcher
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