Closed antoineSpatialworld closed 4 years ago
Thanks for the comments. I was using a bounding box of all the planar segments instead of the entire point cloud. It turned out that some corners of an object might be missed. To be safe, I switched to the (enlarged) bounding box of the entire point cloud. What you mentioned indeed might happen, but never has such a case. Can you please post the result of both? Just to let me understand what happened there.
I used building footprint to generate the "closed" pointcloud (fake ground points small walls. One wall does not have real points (there must be another building next to it). If my wall has too few points to create a segment, then the building might be closed by an other wall if the building makes a kind of "C" form. Here I can force the segment creation as my points are artificial but it could happen with "real" data if a tree blocks the wall for example. This also happens with roof segment planes sometimes.
For the Plane clip, I would prefer if you used the segment pointcloud convex hull or even the 3d bounding box with a buffer as a parameter so that we can adjust the value if we miss some corners. By the way, I find your approach really interesting, thanks for sharing your work!
Thanks for sharing the snapshots. Your results look nice!
I just checked the CGAL implementation (bad memory of mine). The offset of the bounding box is hard-coded in /Polygonal_surface_reconstruction/include/CGAL/internal/hypothesis.h
line 448:
FT offset = radius * FT(0.05);
Feel free to change it or mate it as an accessible parameter so you can tune and compare it.
I would be happy to hear your findings.
BTW, the rendering of the models can be better (seems lighting was disabled?)
I do have an open-source viewer for rendering:
https://github.com/LiangliangNan/Easy3D
I misunderstood your first post. In that case, you can choose a larger weight for the face coverage term (to encourage choosing faces that have good point coverage).
Hi,
On the CGAL implementation, when generating the candidates, you seem to take into account the whole pointcloud bounding box and not the group pointcloud. This generates extra intersections and some errors for complex buildings. Do you plan to use the smaller oriented bounding box of the points with the relevant plane id to do so in the future?