Quality of roof inspections

Hello everyone,

I tried to do a roof inspection and wanted to create a roof as an orthomosaic. Unfortunately, I found that the result via WebODM is not satisfactory in comparison to Pix4D Cloud.

About my flight data:

  • DJI Mavic 2 Pro
  • Images shot with 90 degrees
  • overlap 75/75
  • flight altitude 25 m
  • approx. GSD: 0.7 cm

Parameters in WebODM:
crop: 0, dem-decimation: 1, dem-gapfill-steps: 4, dem-resolution: 1, depthmap-resolution: 1000, dsm: true, dtm: true, end-with: odm_orthophoto, ignore-gsd: true, matcher-neighbors: 8, mesh-octree-depth: 12, mesh-size: 1000000, min-num-features: 64000, orthophoto-resolution: 1, pc-filter: 0, pc-quality: high, rerun-from: dataset

Perhaps you can help me to get a better result out of WebODM?

Find some pictures on DroneDB:


1 Like

The Pix4D orthomosaic is much sharper in depth and therefore more suitable for inspection.

1 Like

Pix4D Cloud still beats us on orthos typically. That’s an area of active research and improvement. That said, there is a lot to do to improve your settings:

Make a few changes here. Remove ignore-gsd. That will bring sadness. If your GSD is 0.7, you should set your orthophoto-resolution to 0.7 (or better yet let ODM calculate it, which it might calculate it higher). I wouldn’t use pc-filter 0 unless you know you need it: that could cause a lot of noise. Increase the heck out of your matcher-neighbors – maybe 32. You can turn your mesh-octree depth up to 13 (but I wouldn’t go to 14). Turn your feature quality up to ultra as well as your pc quality and don’t directly use depthmap resolution.

Something like this would be an improvement:

crop: 0, dem-resolution: 1.4, dsm: true, dtm: true, matcher-neighbors: 32, mesh-octree-depth: 13, mesh-size: 600000, min-num-features: 64000, pc-quality: ultra, feature-quality: ultra, resize-to: -1

The following are my typical settings which generally don’t need tweaking for many datasets:

auto-boundary: true, dsm: true, feature-quality: ultra, matcher-neighbors: 40, mesh-octree-depth: 12, mesh-size: 300000, min-num-features: 64000, orthophoto-resolution: 1, pc-geometric: true, pc-quality: ultra, rerun-from: dataset, resize-to: -1

Good luck, and let us know what you see! Any screenshots you can share would be good to see.


What I found, ODM orthophotos (sometimes) give similar result with Pix4D, but the GPS accuracy seems Pix4D is better

Let me give an example
Here is public dataset https://www.sensefly.com/education/datasets/?dataset=1419

ODM result 1st

Pix4D 1st

ODM 2nd

Pix4D 2nd

ODM 3rd

Pix4D 3rd

ODM setting

version = 2.7.2 via Docker
OS = MXLinux 19.4
pc-geometric true; pc-quality high; feature-quality high; mesh-size 600k; mesh-octree-depth 12; orthophoto-resolution 2 cm/px; dem-resolution 2 cm/px; dsm true; min-num-features 12k; the rest are default

We’ve got an update just this week that may address this. If you haven’t already: update and rerun. I’d be curious what you see.


Woah interesting
Has it available from Docker with ./webodm.sh update --gpu ?


I haven’t tested GPU, but I assume so.


This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.