Improve quality of elevation maps

Are there any settings I can change that will generate higher quality elevation maps? The ones I’m creating seem to be very noisy and not very accurate.

Also, how can I get the heights at specific points on the elevation maps?

Thanks

You can use QGIS to load the DSM and then extract the elevations at the desired points by making a point layer which has your sample locations.

1 Like

The default depthmap resolutions are low because that’s all that’s needed for good orthophotos and decent meshes, and increasing that resolution is the most computationally expensive portion of the toolchain. I will be building out some of these metrics, but for larger datasets, the depthmap portion can be 85% of the processing time.

The main knob you can twist to improve the elevation maps is --depthmap-resolution. You can set that to as high as 1/2 (or 1/4, depending on how you measure it) the resolution of the image. So if your images are 6000x4000, you can set this as high as 3000. The default is ̶1̶0̶0̶0̶ ̶(̶I̶ ̶t̶h̶i̶n̶k̶)̶ 640 so setting to 3000 will make the depthmap calculation stage take ̶6̶x̶ 22x as long.

I usually recommend incremental increases at first: think 1200 or 1600 or even 2000 before turning it all the way up to 1/2 resolution, in part because of processing time, and in part because there is a balance between resolution and the introduction of noise. The noise is high at low resolutions and high resolutions (from different sources) but balances nicely somewhere in between.

R̶e̶g̶a̶r̶d̶i̶n̶g̶ ̶g̶e̶t̶t̶i̶n̶g̶ ̶h̶e̶i̶g̶h̶t̶s̶ ̶a̶t̶ ̶s̶p̶e̶c̶i̶f̶i̶c̶ ̶p̶o̶i̶n̶t̶s̶,̶ ̶I̶ ̶w̶o̶u̶l̶d̶ ̶d̶o̶w̶n̶l̶o̶a̶d̶ ̶t̶h̶e̶ ̶e̶l̶e̶v̶a̶t̶i̶o̶n̶ ̶m̶o̶d̶e̶l̶ ̶a̶n̶d̶ ̶l̶o̶a̶d̶ ̶i̶n̶ ̶a̶ ̶C̶A̶D̶ ̶o̶r̶ ̶G̶I̶S̶ ̶s̶y̶s̶t̶e̶m̶ ̶t̶o̶ ̶e̶x̶t̶r̶a̶c̶t̶ ̶i̶n̶d̶i̶v̶i̶d̶u̶a̶l̶ ̶h̶e̶i̶g̶h̶t̶s̶.̶ ̶I̶ ̶u̶s̶u̶a̶l̶l̶y̶ ̶u̶s̶e̶ ̶Q̶G̶I̶S̶.̶o̶r̶g̶.̶

:point_up:

It looks like I took so long to write this that @Saijin_Naib replied in the interim. :smiley: Serves me right for tryin to write this while on a call.

2 Likes

(See edits above: it’s normally 640, so 3000 is 22x increase in resolution).

1 Like

Per this topic, I am trying to improve the DSM contrast significantly (current defaults are not staisfactory as mentioned above). I tried --depthmap-resolution 1000, --mesh-octree-depth 12, --opensfm-depthmap-method 'BRUTE_FORCE' and --pc-filter 0 (trying not to filter the point cloud at all).

Any other ideas for parameters aside from going ballistic on 22x the computation time :wink: that would help improving DSM?

Tnx!

Edit: DSM height profile of an orchard
red - ODM
blue - pix4d
image
pix4d
image
odm
image

1 Like


I noticed my data has bow effect compared to pix4d so, I tried to turn on the --use-fixed-camera-params according to this thread:

but got very bad dtm and dsm. When you turn this flag on, do you have any other info on the camera as input since it does not optimize the camera internals but only the camera positions and poses?

1 Like

Perhaps try the brown camera model and revert your fixed params flag to default and retry?

Brown is now default. What sensor is this? We typically only see this with rolling shutter sensors now in ODM.

1 Like

Sensor is Sony A7R4 with electronic front curtain shutter function turned on.

Yes I am using brown for camera.

If fixed params is used - which params are actually being used since no camera optimization takes place?

I also tried
opensfm-depthmap-min-consistent-views 2 to get a bit more noisy less filtered output and also opensfm-depthmap-min-patch-sd 0.5 again to try and get less filtered output.

I saw some turned-off params on the sample settings.yaml file here ODM/settings.yaml at master · OpenDroneMap/ODM · GitHub
that do not show up in the docs here:
https://docs.opendronemap.org/arguments.html

for instance:
dem-maxsd: 2.5
dem-approximate: False
dem-terrain-type: ComplexForest

how do I get to some insight into what they actually do?

1 Like

That’d be the problem right there. The A7R4 a fantastic camera with a proper shutter. As soon as you turn on that electronic shutter, you introduce rolling shutter effect per Canon’s write up on this:

  • We recommend to turn this function off whenever you’re shooting with fast shutter speeds, with a large diameter lens attached to prevent ghosting and blurring from happening.
  • Turn this function off when using a Konica Minolta™ lens to set a correct exposure and achieve an even image brightness.
  • A dark horizontal bar may appear on the image or clipping may occur when you shoot at high shutter speeds with the electronic front curtain function turned on.

So, you have 3 choices:

  • Fund or build yourself electronic shutter correction for OpenDroneMap
  • Re-take with this function turned off
  • Use Pix4D or Agisoft

Frankly, even Pix4D doesn’t do the best job with this (although a lot better than OpenDroneMap): Agisoft has a much better function.

Give the quality of this camera, I would never use it in this mode except for stills and landscapes. You throw away a lot of good accuracy by switching this mode on, even when using it with software that attempts to compensate.

2 Likes

Thank you very much @smathermather, you’re right on. I did not verify this function was off ahad of time and didn’t read ahead on its unwanted effects.

I think first think would be to retake the data.

Appreciate the insight.

3 Likes

6 posts were split to a new topic: DSM problems