The advancing technologies in camera and computer nowadays go beyond capturing 2D images, making it possible to scan and store our surrounding objects and environments into point-cloud data. These 3D point-clouds, though recognizable in visualization through our eyes, are unorganized and make it hard to apply different operations (regularizations, simplifications etc.) as we have done on meshes. In this project, we want to focus on implementing the Ball-Pivoting Algorithm which converts a point cloud to triangular meshes effectively. We hope to complete this full pipeline from point cloud inputs to rendering the mesh output using examples from Stanford's 3D Scanning Repository. We tentatively plan to implement another approach -- the Poisson Surface Reconstruction -- as well and compare their performances.
Our first goal is to reconstruct triangular meshes from unorganized 3D point clouds based on the Ball-Pivoting Algorithm(BPA) (referring to “The Ball-Pivoting Algorithm for Surface Reconstruction”). In addition, we would also implement our own methods or utilize external libraries to convert .ply files to point-cloud format with only lists of 3D points. Also, after we use the BPA to interpolate and form triangle meshes, we will implement another conversion algorithm to store them in a .dae file for future rendering.
deliverables:
Rendering examples of meshes produced by the BPA.
Illustration of key structures of BPA.
Once the BPA algorithm is implemented, we would integrate it into the pipeline of our project, which takes a .ply file as input, converts it to meshes for rendering or stores in the familiar .dae format. Also, we would like to set up benchmarks to evaluate the performance of the algorithm, in terms of both speed and geometric accuracy using the original mesh if there’s one.
deliverables:
Illustration of project pipeline.
Benchmark of the algorithm performance.
Geometric comparison of point-cloud generated meshes with original meshes.
(This part is considered "tentative" for us due to the intense schedule in the summer course. We will prioritize working in the first two tasks and begin this one once the above are finished)
In addition to the BPA, we also want to implement another surface reconstruction technique introduced in paper "Poisson Surface Reconstruction" (PSR) if time permits. This method treats the reconstruction from 3D oriented points as a spatial Poisson problem and comes up with a solution that is noise-resistance. Once this part is done, we will be able to enrich our performance evaluation mentioned above by comparing the results generated by different methods (and running time as well).
deliverables:
Rendering examples of meshes produced by the PSR.
Illustration of the PSR algorithm.
Benchmark comparing the performance of PSR v.s. BPA.
Set up the project folder with capability to work with point cloud files.
Implement a functional BPA algorithm.
Finish Milestone Report with deliverables.
Integrate the BPA algorithm into a complete pipeline that converts point-cloud input to mesh outputs.
Evaluate the algorithm’s performance by comparing with the original meshes.
Try to implement the Poisson model (if we have time).
Present final report and presentation.
The Ball-Pivoting Algorithm for Surface Reconstruction https://vgc.poly.edu/~csilva/papers/tvcg99.pdf
Poisson Surface Reconstruction http://hhoppe.com/poissonrecon.pdf
The Stanford 3D Scanning Repository http://graphics.stanford.edu/data/3Dscanrep/
File conversion http://w3.impa.br/~diego/software/rply/
Collada https://docs.blender.org/manual/en/latest/files/import_export/collada.html
Made with ❤ with Bootstrap, by Star Li (listar2000@berkeley.edu)