Open3D
Open3D copied to clipboard
[C++] What is best way for reconstructing full body 3d model from depth images / pointclouds.
Checklist
- [X] I have searched for similar issues.
- [ ] For Python issues, I have tested with the latest development wheel.
- [X] I have checked the release documentation and the latest documentation (for
masterbranch).
My Question
Hello,
My assignment is to create precise 3d model of human body. My camera is Basler Blaze 101 TOF camera, supporting both depth maps and pointclouds streams with high precision (+/- 5mm), as well as intensity images and confidence maps streams.
So far
Recorded sequence (750 single 16-bit grayscale depth maps) of my model person while holding camera in my hand with ~ 13 FPS.
Distance to model is between 500 and 1500 mm and the "empty" values are filled with 0.
Sample depth map:

I did few modifications to OfflineSLAM example
- Since camera is not capable of recording RGB data, color frames where replaced with pure black image with same resolution (both with depth map are 640 x 480).
- Replaced intrinsic with the valid ones from camera which are focal_length = 509.56 and principal point = (314.9,234.86)
- Downsized voxel size to 2 / 512
- Increased depth scale to 22 000
Output model looks very poor comparing to the single shot pointclouds saved in the same time when collecting the depth maps and have a lot of points from outside of model dangling in space - marked with red color on the following example

I've got also RealSense D435 camera and tested OnlineSLAMRealsense example. Since D435 precision is much lower then Basler Blaze camera's and results from D435 looks quite similar, it looks like I'am not able to set proper parameters or even using wrong method.
My questions are:
- Is there any better method than OfflineSLAM for my assignment ?
- If OfflineSLAM is the best then how can i get rid of the "dangling" points from my result model
- If OfflineSLAM is the best then where can I get any info how to properly set following properties of methods TrackFrameToModel, Integrate and SynthesizeModelFrame : voxel_size trunc_voxel_multiplier block_resolution block_count depth_scale depth_diff
I'll be very glad for any help.