isl-org / Open3D

Open3D: A Modern Library for 3D Data Processing
http://www.open3d.org
Other
11.24k stars 2.28k forks source link

Any plans to add RGBD preprocessing? #669

Closed yulizhou closed 4 years ago

yulizhou commented 5 years ago

Is your feature request related to a problem? Please describe. I think the quality of consumer level RGBD cameras is quite worrying in projects requiring better depth values.

Describe the solution you'd like A set of common preprocessing tools for both color and depth would be nice. For example, bilateral filters or more sophisticated hole filling techniques to smooth the depth map.

Describe alternatives you've considered If not provided, we have to write from scratch or include other libraries, such as OpenCV, which is not a desired design goal for Open3D, I presume?

syncle commented 5 years ago

That's good point. Currently we are not planning to add sophisticated depth hole filling functions. In addition, some depth camera SDK already provides their own best solution for depth map filtering. However, I agree with the point that bilateral filter would be basic and good fit for Open3D. Are you willing to contribute to bilateral filter for the community?

germanros1987 commented 4 years ago

@theNded you may have actually done something to address this problem already. Could you comment on this?

theNded commented 4 years ago

FYI: I had an implementation in my own branch, but it was with very old API and no pybind: https://github.com/theNded/Open3D/blob/cuda/src/Cuda/Geometry/ImageCudaDevice.cuh#L172.

Bilateral filters are kind of tricky to implement. It somehow depends on Convolution, but is not trivial to vectorize, see https://gist.github.com/etienne87/9f903b2b16389f9fe98a18fade6df74b.

We are developing a new Tensor engine. We will revisit Filters once the preparation is done, and I think bilateral filters will be implemented along with conventional filters such as Gaussian filters.