3D Point Cloud Image Registration
The goal of our project is to dynamically scan the body of a person and convert it into a 3D model representation using a simple 3D camera. This would be achieved by collecting point data from the subject’s body, stitching to points together and create a mesh. This mesh could then be converted into a polygon which could be used to extract data about the scanned subject, such as volume and size. Such data could be used for various applications.
Application environment and methodology
The stiching process we developed involves combining 2 different algorithms:
A very efficient and robust variant of the iterative closest point (ICP) algorithm.
An implemention of “Fully Automatic Registration of 3D Point Clouds” without the harmonic base Fourier Transform
In this project we implemented both a 3D scanner and a matching algorithm for general purpose of modeling the human body. This model can be used to calculate reliable volume and size measurements of a human, and can be developed to create various applications (i.e. clothes fitting).
The capture device we used is Google ATAP Labs Project Tango , a mobile tablet that uses the structured light technique to collect depth data, as well as an accelerometer to produce fairly accurate pose data of the device. Since this is an early developer release version, much of the work done was for developing the app that can capture the 3D point cloud and project it in the original space.
This project incorporates several state of the art techniques in order the gather real world data from an imperfect input device. Additional color information may be used to greatly improve the capabilities and accuracy of the data produced by the scans. The main issues we’ve encountered were:
Separating the human points from the environment points. This issue is resolved using a simple depth filter. Restricting the human figure to be within a certain distance from the device.
Overcoming pose drift when stitching the tango images. A combination of two algorithm described above are employed to create a uniform point cloud that represent a human as accurately as possible. Although sometimes a mismatch can happened and a verification method is used to disqualify this cases.
The reconstruction done by the screened poisson reconstruction algorithm works well on a water tight scan. But preforming on a noisy scan can cause problems in the resulting mesh, as can be seen in the results section in the documentation.