Generating LOD-2 representation of buildings using CGAL Kinetic algorithm #2252
InfmathAxel
started this conversation in
Portfolio
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Internship on generating LOD-2 representation of buildings using CGAL Kinetic algorithm
Introduction
This project is part of the Exa-MA project at CEMOSIS. CEMOSIS aims to improve the Ktirio Urban Building application by implementing new methods for the 3D reconstruction of buildings. The goal of this stage is to add new tools for the geometric reconstruction of LOD-2 building models, generating 3D models with constraints of conformity and watertightness. For this purpose, we are using an algorithm developed by the INRIA Titane Team called Kinetic Surface Reparation (KSR), implemented in the CGAL library, and we aim to adapt it for use within our environment.
Progression
At the start, since I had already worked on KSR algorithms during the second semester project, I had some understanding of the types of problems I was going to face. Therefore, I needed to better understand how the algorithms worked and how to improve the poor results we had previously obtained. One of the main issues was the data we were working with: we were given STL files of various buildings, but KSR requires a point cloud with associated normals as input, whereas STL files have relatively few points. The first issue I focused on resolving was finding a way to increase the number of points. In the CGAL library, there are different functions available to modify a mesh, which allowed me to obtain a denser point cloud. Here is an example of the conversion from STL files to a dense point cloud:
With this improved point cloud, I was able to apply the algorithms and achieve significantly cleaner results than before. Here is a comparison between the results obtained now and before this internship:
ksr ouput from before ksr output now
Another exemple of result we can get now with the Stl mesh of a House and the output from KSR now :
STL mesh output now
Contribution to the Ktirio Environment
Apart from adapting KSR to a Ktirio environment, I have implemented some checks and tests using the CGAL library to verify the properties of a mesh, such as:
Furthermore, I have created a class similar to the
Point_Set
of CGAL to increase compatibility between Ktirio and CGAL environments and a function to export those point set to .ply files.Performance
At the beginning, when trying to use STL files as input for KSR, we experienced very long execution times due to the conversion process and KSR execution. Now, I have implemented a function to clean up the point cloud to reduce the number of points. This optimization allows us to achieve faster execution times from the same data with auto-detected parameters on the mesh showed before from earlier in the internship and now :
References
For this internship, I primarily used the following references:
Beta Was this translation helpful? Give feedback.
All reactions