3
votes

I have been looking for methods to register (align) organized point clouds with normal information.
I could only find generic point cloud registration methods (for example in PCL).

I am using Microsoft Kinect to get my point clouds, but the problem is that they are quite big.

What I would like to know:

  • Is there are fast ways to register organized point clouds?
  • Are there down-sampling methods that are very fast (and may also be using the fact that the point clouds are organized)?
  • I was also thinking about using OpenCV filters, since an organized point cloud could be though of as an image with gray values (2D matrix with depth values). For example using the openCV resize method on the matrix, and some derivative type filters (because edges are important for me in the scene). Is that a good idea?
  • Also, down-sampling looks like a data-parallel problem, which could be a great candidate for GPU implementation. Do you know about any such implementation?


What I have done so far is the following.
- Several down-sampling methods (Random, Voxel-based, Uniform), but the problem with all of them is that they all took a lot of time (in PCL). Best was Voxel-based.
- Then did ICP, which ran pretty fast and accurate enough for me on the down-sampled point clouds.

So for me, currently, a good solution would be a fast way of down-sampling my point clouds. For example a GPU-based implementation for it.

1

1 Answers

0
votes
  1. Thinking of an organized point cloud as an image with greyvalues (simple 2D matrix) turns out to be a good idea.
  2. Downsampling methods for 2D matrices implemented on GPU are available in, for example, OpenCV cuda.
  3. Also, it is easy to implement your own fast downsampling methods on 2D matrices, depending on how important accuracy is. For example, just simply take every kth element. You can do, if needed, averaging at these elements to blur, or derivative type filters to sharpen (edge enhancement). You can come up with special picking methods, depending on information about the frames (e.g. if you know your objects tend to be in the center, then you can pick more points around the area).

All these three above will give faster results and probably "more-tuned" to your problem (especially #3). "More-tuned" implies less robust.