Minimum number of overlapping images for point-cloud generation


#1

I am doing geomorphological mapping with historical aerial images (framed photos from photogrammetry survey), which typically overlaps 60%-65% along flight line, and 20%-30% across lines. Surprisingly, I am getting good results using ODM with these images.

The problem
I am aware that ODM was designed to work with images overlapping 70% or greater, so in general, the point-cloud is produced only in areas covered by three or more images taken from different angles. In any case, I think that it should be possible to have the point-cloud generated in areas with only 2 images.

The question
Is there a way to tweak OpenSfM parameters in order to have point-cloud generated in areas covered only by 2 images? I saw that PMVS has a flag for minimum number of images (–pmvs-min-images), but I couldn’t find a similar one in OpenSfM.

My example
A reproducible example can be executed with these raw images (a shapefile with footprints is included). I used the following parameters:
./run.sh projectname --project-path path/to/project --resize-to 5976 --force-focal 152.929 --orthophoto-resolution 1 --min-num-features 30000 --matcher-neighbor 14 --mesh-octree-depth 12

I also used images without the black border as inputs, but again, point-cloud was produced only in areas covered by three or more images, showing a strip pattern.

Update 2018/04/18, 18.54 AST
Found a mistake in “gcp_list.txt” contained within the ZIP file, but it is already updated.

Thanks.


#2

The parameters aren’t exposed yet on the command line, but you can change the minimum number of matching images within OpenSfM. See this thread here for more context:

But, in short change depthmap_num_matching_views to 2. This is at OpenDroneMap/SuperBuild/src/opensfm/opensfm/config.py.


#3

Thanks @smathermather-cm.

I just opened OpenDroneMap/SuperBuild/src/opensfm/opensfm/config.py. I wonder if the parameter I may change is depthmap_min_consistent_views, from 3 to 2. As far as I can see, depthmap_num_matching_views is set to 2, so I guess that I should leave it as it is.


#4

Hmm, default used to be 3. If you want more points, look at the other parameters listed in that issue, especially depthmap_resolution.


#5

Oops – wrong parameter. Use depthmap_min_consistent_views and set that to 2.


#6

Thanks again @smathermather-cm. Yes, I noticed that the parameter to change is depthmap_min_consistent_views. I made new tests tweaking that one and others mentioned in the github thread recommended by you. As far as I can see, ODM generated better results wth --use-pmvs (OpenSfM results were noisy), which I can use for geomorphological mapping. In the following lines, I show some results obtained with PMVS.

A sample photo frame of the Ocoa town, year 2003, from the National Institute for Hydraulic Resources (INDRHI) of the Dominican Republic. This and 5 additional photos were introduced as input to the ODM toolchain:
Selecci%C3%B3n_003

This is the point cloud (2.5 million points):
Selecci%C3%B3n_003

The DEM, 2 m resolution, made with bicubic spline (GRASS GIS):
Selecci%C3%B3n_004

The DEM with shaded relief:
Selecci%C3%B3n_005

The orthophoto with shaded relief, 1 m resolution:
Selecci%C3%B3n_006

Zoom to the orthophoto:
Selecci%C3%B3n_010

Shaded relief without denoising:
Selecci%C3%B3n_008

Denoised shaded relief with Sun et al. algorithm:
Selecci%C3%B3n_009

Profile lines from the original DEM and the denoised one:
Selecci%C3%B3n_012

And this is the “geomorphon” image, made with Jasiewicz & Stepinski algorithm, which helps me to speed up the digitizing process:
Selecci%C3%B3n_003


#7

Oh my, this is just exquisite, and I love the use of geomorphon’s in order to aid in digitization. Honestly this is some of the coolest stuff to come out in this project. Do you mind if I link to this from my personal blog?


#8

Thanks @smathermather-cm.

It’ll be great if you can link to this thread from your blog.

In addition, I’m writing a manuscript that I’ll hopefully finish in two months. By that moment, I’ll let you know in case you want to share the document.


#9

Excellent! Thanks.


#10

Not a big blog post as your post here says it all, but:


#11

YES!

Thanks for sharing. Hope it helps more people out there.