Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dense: detect and improve tower like structure reconstruction #1017

Merged
merged 22 commits into from
Jul 2, 2023

Conversation

cdcseacave
Copy link
Owner

Depth-map estimation for tower like structures suffer from bad neighbor views selection. This is caused by the fact that traditionally SfM stage recovers many more points in the background compared to point on the tower structure, the region of interest. Combined with the fact that the background is much farther away compared to the foreground surface, results in the neighbor selection being biased towards good background surface coverage, and poor or next to none overlap for the foreground surface.

This in turn is caused by several factors, but two are the most important:

  1. the foreground surface covers a very low area in the total image area
  2. the foreground surface in tower like scenes usually have very poor texture resulting in even less points in the sparse point cloud

The solution proposed here to overcome this problem is to detect if the structure to be reconstructed is tower like, in which case to approximate the tower coverage in 3D and sample it uniformly into a virtual sparse point cloud, which will be used for neighbor selection instead of the original point cloud.

Buy default this mode is enabled, but the tower like structure detection is very strict in deciding if it is indeed a tower. For now only scenes with up direction on positive Z are supported, with units in meters.

@MikeCernea
Copy link
Collaborator

MikeCernea commented Jun 28, 2023

Here is an example of tower-mode 3:

Before After
image image
image image

@cdcseacave cdcseacave merged commit 5fb4d9e into develop Jul 2, 2023
0 of 3 checks passed
@cdcseacave cdcseacave mentioned this pull request Jul 4, 2023
cdcseacave added a commit that referenced this pull request Jul 4, 2023
 - add python API
 - COLMAP support in MvgMvsPipeline.py
 - interface for binary COLMAP
 - interface for Polycam scenes
 - tower mode #1017
 - estimate 3D points scale
 - transform scene by a given transform matrix
 - unify Docker scripts and add support for GUI
 - fix incorrect comparison in BufferedOutputStream #1010
 - add lines structure
 - compute the focus of attention of a set of cameras
 - add image mask support in mesh texturing
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants