microsoft / RoomAliveToolkit

Other
715 stars 191 forks source link

Point cloud registration #17

Closed pyrochlore closed 8 years ago

pyrochlore commented 8 years ago

Hi,

I want to do registration to the point clouds output from RoomAliveToolkit. Since I didn't get my second Kinect v2 yet, I took the example provided in Readme for testing.

My process is simply read each mean.ply file below the camera folder, multiply the position of the points to the depthToColor matrix (found in ensemble.xml), then multiply all the position of points to the pose of camera (found in ensemble.xml)

The registered result I got is shown below point_cloud_1 points in red : left camera points in yellow: center camera points in blue: right camera

The top view is point_cloud_2

From the top view, I can see gaps and shift between different sets of point cloud. Did I do anything wrong about the registration process?

thundercarrot commented 8 years ago

CalibrateEnsemble in the RoomAlive project renders more or less the same thing. If you try loading the example files in it, I think you will find the registration to be pretty good, so maybe you have a bug in your code? Alternatively, the transformation applied to generate mean.ply may be flawed, but I doubt that.

pyrochlore commented 8 years ago

Thanks for the reply. Eventually I found the unit in transform matrix was in "meter" while the unit in point cloud ply file was in "millimeter". This is why the orientation of point clouds looks fine while translation didn't. The top view of the result of registration shown below point_cloud_3 Thanks!

thundercarrot commented 8 years ago

I changed mean.ply to millimeters (develop branch, for now).