5
$\begingroup$

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.
$\endgroup$
2
  • $\begingroup$ 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? $\endgroup$
    – piegames
    Sep 15, 2018 at 10:01
  • 1
    $\begingroup$ "What will you use to generate mesh of this data"? I will use MeshLab. $\endgroup$
    – user106
    Sep 16, 2018 at 10:00

2 Answers 2

6
$\begingroup$
  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.

$\endgroup$
3
$\begingroup$

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.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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