I finished this project last year and it’s been ‘dying’ to be posted. My goal was to take point clouds obtained from two Kinects and register them into one coordinate system. After the registration process was completed, the new point cloud would be much more robust with many of the obstructed blank spots filled in.
The project follows a simple algorithm.
- Use libfreenect to obtain point clouds from both Kinects
- Use OpenGL to display the point clouds in an interactice virtual environment
- Use OpenCV to display the RGB streams for the user to select correspondences
- Calculate the transformations using Procrustes Analysis and the correspondence matrices
- Apply the translation and rotation to the point clouds visualized in OpenGL
The implementation of this algorithm can be found here.
After a few weeks of stagnant development with the project, I made a bet with my friends and advisor that I could finish the project in one weekend before I left for a vacation. Below is the video which resulted from my sleepless weekend hackathon.
After the project was finished. I used it to complete what is called an “Honor’s Thesis” here at my University. It is an undergraduate research project, which once defended successfully allows the student to graduate “with honors” on their diploma. Looking back on the thesis now I would have done things differently – but isn’t that almost always the case. None-the-less it was a mile stone in my life and it is my work.
Let me know if you’d like a copy of it and I’ll be happy to send it to you!