Given point-cloud data : For example. position + color and normal.

What will you use to generate mesh of this data and keep reasonable quality for real time cases ?

Additional info to consider:

  1. In some cases given also 3D cameras world transforms which generated the PCL.

  2. Number of input vertices : ~50k and up to millions .

  3. Target latency from input to output : < 40ms

  4. Output triangle mesh (preferably not a must)

  5. More info about mesh reconstruction
    A Benchmark for Surface Reconstruction

Any inputs are welcome.
FAQ:

How the data look like ?

  • Float* Position [x1,y1,z1,x2,y2,z2...]
  • Float* Normal [nx1,ny1,nz1,nx2,ny2,nz2...]
  • float or int8 for the color.
  • What does your data look like? What do the points represent? Do you have example images of raw data and how the final result should look like? – piegames Sep 15 at 10:01
  • Hi,thank you. Updated. – barakooda Sep 15 at 17:22
  • 1
    "What will you use to generate mesh of this data"? I will use MeshLab. – Rahul Sep 16 at 10:00
  1. one popular Real time surface reconstruction method is TSDF (Truncated Signed Distance Function) used by Microsoft for the Kinect. It is based on the VRIP method but it is faster. It is based on depth maps from different (known) camera positions. you can read more: https://cs.nyu.edu/courses/fall12/CSCI-GA.2945-001/dl/jiakai-slides.pdf file:///C:/Users/chaim.dryzun/Downloads/kinectfusion.pdf

  2. From the methods in the reference you gave the fastest is Wavelet based surface reconstruction. If the overall point cloud is good and regular (uniform point density) and without holes and the normals are correct than it gives a very good mesh in a short time.

  3. A more robust and popular method is the Poisson based surface reconstruction. You will need the normals. It gives very good mesh although it takes more time.

  4. Another good method is the PowerCrust surface reconstruction method. It gives very good and accurate mesh, and it does not need the normals. This method produces a polygonal mesh and not triangular mesh, but it is very easy to transform it to triangular. The original code is very slow, but as it is based on calculating Voronoi cells - you can easily re-write it so it will run much faster. You can read more: http://web.cs.ucdavis.edu/~amenta/powercrust.html

  5. Regarding the time, working with million of points will take much more than 40 ms, no matter which method you choose (except maybe TSDF). You will have to downsample the point cloud before meshing.

You can use CloudCompare or MeshLab to generate a mesh from a point cloud using many algorithms. In my experience, marching-cube method results in accurate meshes.

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.