Minimum number of overlapping images for point-cloud generation


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:
./ 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.



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/


Thanks @smathermather-cm.

I just opened OpenDroneMap/SuperBuild/src/opensfm/opensfm/ 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.


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


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


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:

This is the point cloud (2.5 million points):

The DEM, 2 m resolution, made with bicubic spline (GRASS GIS):

The DEM with shaded relief:

The orthophoto with shaded relief, 1 m resolution:

Zoom to the orthophoto:

Shaded relief without denoising:

Denoised shaded relief with Sun et al. algorithm:

Profile lines from the original DEM and the denoised one:

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


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?


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.


Excellent! Thanks.


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



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