Venice2020 Building Heights Detection: Difference between revisions
Line 17: | Line 17: | ||
Our initial plan was to download drone videos of Venice on Youtube, extract images from the videos, and generate point cloud models based on the images that we obtained. However, the videos we could get from drone videos are very limited: Few of the videos are of high quality, and among those eligible videos, most of the videos only focused on monumental building such as Saint Mark Square. Therefore, a large part of Venice will be omitted if we only adopt Youtube Video Method. | Our initial plan was to download drone videos of Venice on Youtube, extract images from the videos, and generate point cloud models based on the images that we obtained. However, the videos we could get from drone videos are very limited: Few of the videos are of high quality, and among those eligible videos, most of the videos only focused on monumental building such as Saint Mark Square. Therefore, a large part of Venice will be omitted if we only adopt Youtube Video Method. | ||
[[File:a.png| | [[File:a.png|500px|thumb|Figure 1: YouTube Video]] | ||
=== Google Earth Method === | === Google Earth Method === |
Revision as of 00:38, 7 December 2021
Introduction
The main goal of our project is to obtain the height information of buildings in Venice. In order to achieve this goal, we construct a point cloud model of Venice with drone video from youtube and google earth with the help of a photogrammetry tool developed at DHLAB.
Motivation
Building height is one of the most important information to consider for urban planning, economic analysis, digital twin implementation, and so on. For Time Machine implementation, it is important to compare different historical data and current data based on different times. Drones and Google Maps provide 3D views of buildings and surroundings in detail which are useful resources to keep track of changes in a target place. In this project, we aim to detect the building heights of Venice. Many geographical areas, which are either not famous or not accessible easily are accessible by Google Earth 3D views. We aim to make a 3D model of Venice with every detail of the city and calculate point clouds to detect the heights of the city. This information can be used to understand current details of the city and also will be useful in the future as historical data to compare with.
Methodology
Images Collection
To build three dimensional point cloud models
Youtube Video Method
Our initial plan was to download drone videos of Venice on Youtube, extract images from the videos, and generate point cloud models based on the images that we obtained. However, the videos we could get from drone videos are very limited: Few of the videos are of high quality, and among those eligible videos, most of the videos only focused on monumental building such as Saint Mark Square. Therefore, a large part of Venice will be omitted if we only adopt Youtube Video Method.
Google Earth Method
In order to access more area of Venice, we decided t
Photogrammetry
Once the images of different parts of Venice are prepared, we use a photogrammetric reconstruction tool to generate point cloud models. Photogrammetry is the art and science of extracting 3D information from photographs.
Point Cloud Processing
Plane Generation
To calculate the height of building, we have to find the plane in the very beginning, which could be realised by a tool provided by Open3D. Open3D supports segmententation of geometric primitives from point clouds using 'RANdom SAmple Consensus'. To find the plane with the largest support in the point cloud, we can use segment_plane by specify 'distance_threshold'.
Height Calculation
After we obtained the plane equation in the previous step, we calculated the relative height of the building using the equation of distance from point to plane, the coordinate information of each point could be accessed by the 'points' attribute of the point cloud. However, we do not have the 2D coordinate information of the point since the point cloud is a 3D object, we could not just visualise the height information on a 2D map. An alternative way is to mark the height information of each point through the color attribute of the point cloud. For each point in the point cloud, it has a 'colors' attribute, which returns an array of shape ( 1 , 3 ), range [ 0, 1 ], containing RGB colors information of the point. Therefore, by normalising the distance array to the range of [0,1] and expanding the distance array to three dimensions by replication, we get a 'distance array' in the form of 'colors array', lighter the color, higher the point.
Cadaster Alighment
Milestones
Milestone 1
- Get familiar with OpenMVG, Open3D, OpenGM, Point Cloud Library, Agisoft Metashape, Blender, CloudCompare and QGIS
- Collect high resolution venice drone videos on youtube and record Google Earth birdview videos as supplementary materials
Milestone 2
- Align photos of the same location in Venice, derive sparse point clouds made up of only high-quality tie points and repeated optimize the camara model by reconstruction uncertainty filtering, projection accuracy filtering and reprojection error filtering.
- Build dense point clouds using the estimated camera positions generated during sparse point cloud based matching and the depth map for each camera
- Evaluate point clouds objective quality and select high quality models by point-based approaches which can assess both geometry and color distortions
Milestone 3
- Align and compose dense point clouds of different spots to generate an integrated Venice dense cloud model (implement registration with partially overlapping terrestrial point clouds)
- Build Venice 3D model (mesh) and tilted model according to dense point cloud data
- Generate plane of the surface ground
Milestone 4
- Build the digital elevation model of Venice and align the model with open street map and cadaster in the 16th century to obtain building heights
- Assess the accuracy of the building heights detection
Planning
Week | Tasks | Completion |
---|---|---|
week 5 |
|
✓ |
week 6-7 |
|
✓ |
week 8-9 |
|
✓ |
week 10 |
|
✓ |
week 11 |
| |
week 12 |
| |
week 13 |
| |
week 14 |
|