Open gkiavash opened 1 year ago
The city point cloud is perfectly aligned with the z-axis, however, our reconstructions are not. This is needed in order to create the elevation maps or slice the point clouds. So, for this problem, I detect the plane with the highest number of inliers to be the ground plane, i.e. xy plane and then calculated the rotation matrix between the normal of the ground plane and (0,0,1) pointer. The algorithm is robust enough since in most of the plys, all points of the ground are in one plane however buildings are in different planes. I also found a repository that segments the point cloud into multiple planes. In our case, it segments the ground and all buildings in different streets. The image below is an example of this segmentation.
Then, I created the elevation maps. Here are some the examples:
Another problem is the difference in scale and density of the points between the reconstructions and city plys. In city ply, the points are distributed uniformly. I scaled them manually and then filtered the points using open3d.geometry.voxel_down_sample
function to have coherent and the same density between two plays
The dense points from the ground are important as the majority of the points in city point cloud are related to the ground and roofs. I recognized that Pixel Perfect refinement can generate more points for this area. Here is an example:
I tried to register using the methods in open3d
.
In this task, the camera is calibrated and the video is undistorted. I took several videos from the city and applied SfM to generate dense reconstructions. For some challenging reconstructions, I provided raw and refined dense plys to compare the results. The reconstruction from undistorted images had a much better quality than that from distorted images, like more accurate angles between streets, better aligned points on the ground and wall planes. Here are some of the point clouds and their corresponding points in the city point cloud:
1.
![snapshot_city00](https://github.com/gkiavash/Master-Thesis-Structure-from-Motion/assets/58342884/38009139-3efc-4e13-be62-dfd764a61a0d)
2.
![snapshot01](https://github.com/gkiavash/Master-Thesis-Structure-from-Motion/assets/58342884/05f053e2-909f-4c6a-835f-d50e126e67c6)
3.
![snapshot01](https://github.com/gkiavash/Master-Thesis-Structure-from-Motion/assets/58342884/f2cf154e-f003-4682-9de0-629b46f0d501)
4.
![snapshot00](https://github.com/gkiavash/Master-Thesis-Structure-from-Motion/assets/58342884/56e1dace-0d97-4ed7-ae65-23a414a3170d)