How to adjust processing parameters based on quality requirements

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

How to adjust processing parameters based on quality requirements

Khyale Nascimento

Dear colleagues,

First, congratulations for the development of OpenDroneMap project. I just install OpenDroneMap in a Linux machine and I need some help to choose the parameters to perform a low, normal or high quality processing. The images were acquired with inpireOne DJI drone (4K camera, gimbal). I have 42 aerial images with  12M pixels  (3992 x 2992), jpeg, geoTagged, captured at 60m height, ground sample distance (GSD) of 2.5cm / pixel. 

I guess the processing quality parameters are:
 --resize-to
--use-opensfm
--min-num-features
--matcher-threshold
--matcher-ratio
--matcher-neighbors
--matcher-distance
--cmvs-maxImages
--pmvs-level
--pmvs-csize
--pmvs-threshold
--pmvs-wsize
--pmvs-minImageNum
--odm_meshing-maxVertexCount
--odm_meshing-octreeDepth
--odm_meshing-samplesPerNode
--odm_meshing-solverDivide
--odm_texturing-textureResolution
--odm_texturing-textureWithSize
--odm_orthophoto-resolution

I do not know the details behind the algoritms, but I want to tune the parameters to processing my set of images in low (quick), normal (standard) or high (slow) quality results. Can you help me? I know theses terms 'low', 'normal', 'high' are very subjective. But I need know a way to fine tuning the processing for show the results, compare it with other softwares, eg Pix4D, etc.

I am running  in a machine with Linux, Debian 8, amd64, with 12 processors (Intel Xeon 2.3Ghz), 32GB RAM. It is a HP Z820 workstation.

Thank you,
Khyale

   





_______________________________________________
OpenDroneMap-users mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/opendronemap-users
Reply | Threaded
Open this post in threaded view
|

Re: How to adjust processing parameters based on quality requirements

Simon-3
Hello Khyale,

first of all OpenDroneMap is not as mature as other mentioned SW
products, thus you will need some work to get into the details of the
program.
From my point of view, not every parameter is equally "effective" on
every dataset. So at the moment there is some "try and error" involved.

In general: Using --resize-to is the first option you should try. This
will define the image size for the whole workflow. Less pixels are
leading in general to faster processing times (and sparser
reconstructions), more pixels to a better reconstruction (but there is a
chance to run into memory problems as well)...

Try something around 800, 2000, and 3000 for example and examine the
results.

The other parameters are described here:
https://github.com/OpenDroneMap/OpenDroneMap/wiki/3.-Run-Time-Parameters

Keep in mind, that you can rerun the program from a specific step, so
you dont need to do it all over again.
Its also a very good idea to backup your results and name them
accordingly, because ODM overwrites the output constantly.

Cheers!
Simon

On 06/02/2016 08:22 PM, Khyale Nascimento wrote:

>
> Dear colleagues,
>
> First, congratulations for the development of OpenDroneMap project. I
> just install OpenDroneMap in a Linux machine and I need some help to
> choose the parameters to perform a low, normal or high quality
> processing. The images were acquired with inpireOne DJI drone (4K
> camera, gimbal). I have 42 aerial images with  12M pixels  (3992 x
> 2992), jpeg, geoTagged, captured at 60m height, ground sample distance
> (GSD) of 2.5cm / pixel.
>
> I guess the processing quality parameters are:
>  --resize-to
> --use-opensfm
> --min-num-features
> --matcher-threshold
> --matcher-ratio
> --matcher-neighbors
> --matcher-distance
> --cmvs-maxImages
> --pmvs-level
> --pmvs-csize
> --pmvs-threshold
> --pmvs-wsize
> --pmvs-minImageNum
> --odm_meshing-maxVertexCount
> --odm_meshing-octreeDepth
> --odm_meshing-samplesPerNode
> --odm_meshing-solverDivide
> --odm_texturing-textureResolution
> --odm_texturing-textureWithSize
> --odm_orthophoto-resolution
>
> I do not know the details behind the algoritms, but I want to tune the
> parameters to processing my set of images in low (quick), normal
> (standard) or high (slow) quality results. Can you help me? I know
> theses terms 'low', 'normal', 'high' are very subjective. But I need
> know a way to fine tuning the processing for show the results, compare
> it with other softwares, eg Pix4D, etc.
>
> I am running  in a machine with Linux, Debian 8, amd64, with 12
> processors (Intel Xeon 2.3Ghz), 32GB RAM. It is a HP Z820 workstation.
>
> Thank you,
> Khyale
>
>    
>
>
>
>
>
>
> _______________________________________________
> OpenDroneMap-users mailing list
> [hidden email]
> http://lists.osgeo.org/mailman/listinfo/opendronemap-users

_______________________________________________
OpenDroneMap-users mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/opendronemap-users
Reply | Threaded
Open this post in threaded view
|

Re: How to adjust processing parameters based on quality requirements

Dakota Benjamin
In reply to this post by Khyale Nascimento

I agree with everything Simon has said. That being said, I started working on a table to organize my experience with playing with parameters, and what I would consider low- or high-quality. Take this as you will, it is certainly not an exhaustive or thoroughly researched list, only my own experience and intuition. I put the defaults in the "Med" category.  For a few of the parameters I did some benchmarking on a 32-core, 45GB RAM (45GB swap) machine. See attached for results. 


I have started looking into the texturing/ortho settings but found them to be somewhat inconsistent as far as costs and quality of results go. I will have to spend more time on that. 


Hopefully these will give you all an idea of what parameters to tune and by how much. You can also look at the wiki for more detailed descriptions of each parameter. 


Parameter Low Med High
--resize-to
1200 2400 original
--min-num-features
4000 6000 10000
--cmvs-maxImages
100 500 # imgs
--pmvs-level
1 1 1
--pmvs-csize
4 2 1
--pmvs-threshold
0.7 0.7 0.7
--pmvs-wsize
6 7 8
--pmvs-minImageNum
3 3 3
--odm_meshing-maxVertexCount
10,000 100,000 1 million
--odm_meshing-octreeDepth
8 9 11




From: OpenDroneMap-users <[hidden email]> on behalf of Khyale Nascimento <[hidden email]>
Sent: Thursday, June 2, 2016 2:22:47 PM
To: [hidden email]
Subject: [OpenDroneMap-users] How to adjust processing parameters based on quality requirements
 

Dear colleagues,

First, congratulations for the development of OpenDroneMap project. I just install OpenDroneMap in a Linux machine and I need some help to choose the parameters to perform a low, normal or high quality processing. The images were acquired with inpireOne DJI drone (4K camera, gimbal). I have 42 aerial images with  12M pixels  (3992 x 2992), jpeg, geoTagged, captured at 60m height, ground sample distance (GSD) of 2.5cm / pixel. 

I guess the processing quality parameters are:
 --resize-to
--use-opensfm
--min-num-features
--matcher-threshold
--matcher-ratio
--matcher-neighbors
--matcher-distance
--cmvs-maxImages
--pmvs-level
--pmvs-csize
--pmvs-threshold
--pmvs-wsize
--pmvs-minImageNum
--odm_meshing-maxVertexCount
--odm_meshing-octreeDepth
--odm_meshing-samplesPerNode
--odm_meshing-solverDivide
--odm_texturing-textureResolution
--odm_texturing-textureWithSize
--odm_orthophoto-resolution

I do not know the details behind the algoritms, but I want to tune the parameters to processing my set of images in low (quick), normal (standard) or high (slow) quality results. Can you help me? I know theses terms 'low', 'normal', 'high' are very subjective. But I need know a way to fine tuning the processing for show the results, compare it with other softwares, eg Pix4D, etc.

I am running  in a machine with Linux, Debian 8, amd64, with 12 processors (Intel Xeon 2.3Ghz), 32GB RAM. It is a HP Z820 workstation.

Thank you,
Khyale

   





_______________________________________________
OpenDroneMap-users mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/opendronemap-users

odm-parameters-benchmarking.txt (2K) Download Attachment