[C++] What is best way for reconstructing full body 3d model from depth images / pointclouds.
- Dominant language
- C++
- Stars
- 14k
- Forks
- 2.6k
- Avg merge
- 5d 18h
- Merged PRs (30d)
- 6
Description
### Checklist
- [X] I have searched for [similar issues](https://github.com/isl-org/Open3D/issues).
- [ ] For Python issues, I have tested with the [latest development wheel](http://www.open3d.org/docs/latest/getting_started.html#development-version-pip).
- [X] I have checked the [release documentation](http://www.open3d.org/docs/release/) and the [latest documentation](http://www.open3d.org/docs/latest/) (for `master` branch).
### My Question
### Hello,
My assignment is to create precise 3d model of human body.
My camera is [Basler Blaze 101](https://www.baslerweb.com/en/products/cameras/3d-cameras/basler-blaze/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](https://github.com/isl-org/Open3D/blob/master/examples/cpp/OfflineSLAM.cpp)
- 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](https://github.com/isl-org/Open3D/blob/master/examples/cpp/OnlineSLAMRealSense.cpp).
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.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.