proposal for a User Profiling and Parameter Optimization Guide for WebODM

Luca Bonuccelli

Hi @pierotofy and the WebODM Community,
Inspired by the principle stated in the official guide's preface — "If you’re wondering who’s in charge of writing documentation, you are" — I have decided to launch an initiative to help users, especially beginners, navigate the software's many processing options.
I 'd like to write a draft for a "User Profiling Guide." The goal is to transform parameter tuning from "more art than science" into a logical, guided process. The guide uses targeted questions (e.g., speed vs. quality goals, terrain type, topographic needs) and suggests corresponding technical settings (e.g., enabling fast-orthophoto, adjusting mesh-octree-depth, or configuring SMRF filters).
I plan to host this document on a public GitHub repository to allow anyone to examine, modify, and distribute it, following the project's open-source philosophy.
Piero, as the maintainer, I would value your thoughts on this approach. Do you think a guided profiling system would be a useful addition to the current documentation? Community, what parameters do you find most difficult to configure correctly?
Your constructive criticism is a key component for me to learn and improve.
Best regards
Luca

14 Replies

Luca Bonuccelli OP

for instance:

  1. Objective and Timing

Question: "Do you need a quick map for emergency assessment or a high-precision product?"

Reaction A (Speed/Civil Protection):
Enable fast-orthophoto: true to skip the MVS dense phase.
Set sfm-algorithm: planar if the flight is overhead over flat terrain (speeds up by 5-10 times).
Enable skip-3dmodel: true and skip-report: true to save final time.
Reaction B (High Quality/Architecture):
Set pc-quality: high or ultra (if RAM allows).
Increase mesh-octree-depth to 12 to capture fine details.
Increase mesh-size proportionally to avoid losing triangles in the simplification.

  1. Terrain Features

Question: "What did you photograph? (Urban area, forest, agricultural field, or landslide?)"

Reaction A (Dense Vegetation/Forests):
Increase min-num-features (e.g., to 10,000) to find more snap points among the tree canopies.
Consider feature-quality: low if the images are slightly blurry due to the wind.
Reaction B (Urban Areas with Tall Buildings):
Enable use-3dmesh: true for the orthophoto, as 2.5D meshes fail to correctly represent overhangs and walls.
Use sky-removal: true if oblique photos that include the horizon were taken.
Reaction C (Flat Agricultural Land):
Use low mesh-octree-depth values (6-8) to speed up the mesh without losing useful information.

  1. Topographical Requirements (DTM)

Question: "Do you need a bare terrain map, without trees or buildings?"

Reaction (If Yes):
Activate dtm: true (which automatically enables pc-classify).
Slope Follow-up: If the terrain is mountainous, increase smrf-slope (up to 1.2). If flat, decrease it (0.1).
Object Follow-up: Set smrf-threshold to the minimum height of the objects to be removed (e.g., 0.5m for small bushes).

Luca Bonuccelli OP
  1. Accuracy and Georeferencing

Question: "Do you have ground-based measurements (GCPs) and how did you measure them?"

Reaction A (Use of GCPs):
If the user has taken multiple measurements of the same point, suggest GCP Averaging (averaging measurements taken 4 hours apart) to eliminate atmospheric errors.
If the drone has a high-precision RTK GPS, enable force-gps: true to use both data.
Reaction B (Accuracy Verification):
Instruct the user to rename some points with the prefix CHK- to treat them as Checkpoints.
Post-Processing Reaction: Verify the independent error in the specific section of the Quality Report.

  1. Hardware and Camera

Question: "What type of drone/camera did you use?"

Reaction A (Consumer Drone - Rolling Shutter):
Enable rolling-shutter: true to compensate for motion distortions.
Reaction B (Multispectral/Thermal Camera):
Enable radiometric-calibration: camera+sun to obtain reflectance or temperature values.
Verify the primary band for the initial reconstruction.

  1. External Use of Data

Question: "In which software will you use the final results?"

Reaction A (QGIS/GIS):
Enable build-overviews: true to speed up the display of large orthophotos.
Reaction B (Blender/3D Software):
Enable texturing-single-material: true to have a single texture file.
Enable gltf: true for a modern, compressed 3D format.
Reaction C (Web/Cesium):
Enable 3d-tiles: true to stream 3D models to browsers.

Luca Bonuccelli OP
Luca Bonuccelli OP

I am proud and excited.

Please apply your critical judgment to improve upon what I have done.

❤️ 4 🔥 2
Luca Bonuccelli OP

Thank you for your trust. From now on, I have two goals: the first is to improve the guide (with everyone's help); the second is to create something interactive from the guide itself.

Bonus: 3rd how read the quality report

Super bonus: in my first language

❤️ 1
Luca Bonuccelli OP

New question/reaction...

Other questions and answers: do you consider them correct?

Be critical—even brutal: the important thing is to have something usable and useful.

========================================0

  1. Alignment and Multitemporal Surveys

Question: "Are you conducting a follow-up survey of an area processed previously, and do you need the new model (point cloud or DTM) to align perfectly with the old one?"

Action: Use the align parameter. In the WebODM interface, select the reference task from the "Alignment" field. This instructs the software to ignore the original GPS/GCP data of the new survey and anchor it geometrically to the existing reconstruction.

  1. Controlling the Area of Interest

Question: "Do you want the software to automatically restrict the reconstruction to the specific perimeter where the drone photos were taken, avoiding unnecessary background processing?"

Action: Enable auto-boundary. This creates a polygon around camera positions to limit the reconstruction area. You can refine the width of this boundary using auto-boundary-distance.

Question: "Does your orthophoto or DEM have jagged edges or 'dragging' artifacts at the borders that you want to trim away cleanly?"
Action: Set the crop parameter (in meters) to shrink the final boundary and remove interpolation artifacts.

  1. Digital Elevation Model (DEM) Optimization

Question: "Do you have an extremely dense point cloud and want to speed up DSM/DTM generation by simplifying the source data?"
Action: Use dem-decimation. For example, a value of 50 tells the software to use only 2% of the points, significantly reducing file writing times.

Question: "Does your terrain model have 'holes' (areas without data) that you want to fill more accurately using multiple interpolation passes?"
Action: Increase the dem-gapfill-steps to control the number of iterations the algorithm uses to fill empty cells.

Luca Bonuccelli OP
  1. Geometric Precision and Camera Calibration

Question: "Do you notice 'doming' effects (where the ground appears unnaturally arched) and want to maximize the precision of the camera positioning?"
Action: Enable use-hybrid-bundle-adjustment. This increases the frequency of global and local optimization cycles during the SFM phase.
Action: shutter controll

Question: "Do you have a pre-existing, precise calibration file for your lens, or do you want to force the software to trust the focal data in your photo metadata without further optimization?"
Action: Enable use-fixed-camera-params. This prevents the software from attempting to auto-calibrate the optical parameters.

  1. Structure From Motion (SFM) and Matching Tuning

Question: "Is the survey area characterized by very repetitive textures (e.g., dense forests or snow) where the standard algorithm struggles to find tie points?"

Action: Experiment with feature-type by choosing alternative algorithms like akaze or hahog to search for more stable features in challenging contexts.

Question: "Are you processing image frames extracted from a video file?"
Action: Set matcher-order. This forces the software to only compare images based on their sequential timing in the file, potentially saving hours of unnecessary calculation.

Question: "Is the software producing multiple partial reconstructions (split maps), and would you prefer to keep only the largest main block rather than risking incorrect merges?"
Action: Enable sfm-no-partial. This forces the software to discard smaller disconnected blocks of photos and keep only the most consistent dataset.

Luca Bonuccelli OP
  1. Radiometric and 3D Model Refinement

Question: "Are you using a multispectral or thermal sensor (e.g., for precision agriculture or temperature analysis)?"
Answer / Action (If YES):

File Selection: Ensure you upload all image files for all available bands for each capture simultaneously.
Processing Preset: Select the "Multispectral" preset, which already includes specific parameters such as radiometric calibration.
Radiometric Calibration (radiometric-calibration): Set to "camera" or "camera+sun" (if the drone has a DLS incident light sensor) to convert raw pixel values into reflectance or, for LWIR sensors, into degrees Celsius.
Data Preservation (texturing-skip-global-seam-leveling): Enable this option (set to "true") to prevent the software from applying global color balancing, which would alter the purity of the radiometric data required for scientific analysis.
Band Alignment (skip-band-alignment): Leave this option disabled so that WebODM can correct minor geometric misalignments between the multispectral camera's different physical sensors.
Primary Band Selection (primary-band): By default, the software selects the band with the lowest index, but you can force the use of a specific band (e.g., NIR or Red-Edge) for SfM reconstruction if the automatic choice does not yield satisfactory results.
Output Analysis: Once the process is complete, use the "Plant Health" tab in the map view to apply algorithms like NDVI, or the "Thermal" tab to view heat maps.

Question: "Do you need a 3D mesh that is geometrically complete even in areas 'unseen' by the cameras (closed faces without color)?"

Action: Enable texturing-keep-unseen-faces.

Question: "Are you performing multispectral analysis and want to ensure pixel colors are not altered by automatic exposure balancing?"
Action: Enable texturing-skip-global-seam-leveling. This preserves the original radiometric purity of the data, which is critical for precision agriculture

👍 2
GenAnon Best answer

Reading over this provides useful tips. Keep the documentation wiki going and thank you.

❤️ 1 💛 1

Need more help?

This discussion happened in the WebODM community Discord. Join and ask your own question.

Join View Original Thread

This page mirrors a public discussion from the WebODM Discord. How to request a removal.