Opzioni di ODM e ODX a confronto: come trovare le differenze
In questa pagina
Il punto di partenza: opzioni identiche#
Al 6 aprile 2026 il motore ODX della linea WebODM e il motore ODM 3.6.0 della linea OpenDroneMap erano lo stesso codice. Ne segue che le opzioni di elaborazione (i parametri che passi al motore, come --dsm o --pc-quality) erano identiche: stessi nomi, stessi valori ammessi, stessi default. Le 93 opzioni documentate su docs.opendronemap.org/arguments per ODM 3.6.0 valevano anche per ODX.
Da allora i due motori divergono, e nessuna tabella scritta da noi può essere completa per sempre. Per questo la guida ti dà prima il metodo per vedere le differenze con i tuoi occhi, poi la tabella di riferimento datata, poi le novità annunciate da una sola linea, infine come scrivere preset validi su entrambe.
Termini usati: "opzione" (option, flag, argument) è un parametro della riga di comando; "preset" è un insieme di opzioni salvato con un nome; "diff" è un programma che confronta due file di testo riga per riga. Il glossario li raccoglie.
Il metodo: chiedere ai motori con --help#
La fonte più affidabile sulle opzioni non è una pagina web, che può essere in ritardo, ma l'immagine Docker che userai davvero.
1. Scarica le due immagini#
Il metodo è lo stesso; cambia l'immagine.
Verifica su Docker Hub il tag disponibile per webodm/odm, poi:
docker pull webodm/odm
Se fissi un tag esplicito (consigliato per la riproducibilità), usa webodm/odm:TAG in tutti i comandi che seguono.
docker pull opendronemap/odm
Anche qui puoi fissare un tag esplicito: consulta la pagina dell'immagine su Docker Hub.
2. Salva l'output di --help in due file#
docker run --rm webodm/odm --help > odx-help.txt
docker run --rm opendronemap/odm --help > odm-help.txt
Ogni comando avvia un container temporaneo (--rm lo elimina alla fine) e salva l'aiuto in un file di testo.
3. Confronta i due file#
diff odm-help.txt odx-help.txt
Le righe precedute da < esistono solo nel primo file (ODM), quelle precedute da > solo nel secondo (ODX). Output vuoto: stesso aiuto. Per un confronto affiancato:
diff -y --suppress-common-lines odm-help.txt odx-help.txt
4. Estrai solo i nomi delle opzioni#
Descrizioni e a capo possono differire per motivi editoriali. Per confrontare solo i nomi:
grep -oE '^\s*--[a-z0-9-]+' odm-help.txt | tr -d ' ' | sort -u > odm-opts.txt
grep -oE '^\s*--[a-z0-9-]+' odx-help.txt | tr -d ' ' | sort -u > odx-opts.txt
diff odm-opts.txt odx-opts.txt
Il risultato è l'elenco delle opzioni presenti in un solo motore; le differenze di default o di valori ammessi emergono dal diff completo del passo 3.
5. Registra versioni e data#
Un confronto vale per le versioni confrontate. Annota:
docker run --rm webodm/odm --version
docker run --rm opendronemap/odm --version
docker inspect --format '{{index .RepoDigests 0}}' webodm/odm
docker inspect --format '{{index .RepoDigests 0}}' opendronemap/odm
Il digest identifica in modo univoco l'immagine, indipendentemente dal tag. Conservalo insieme ai file --help.

Le stesse opzioni in WebODM e in OpenDroneMap Desktop#
Le interfacce non hanno un proprio elenco di opzioni: lo chiedono al nodo a cui sono collegate. In WebODM il pannello di un task mostra ciò che il nodo scelto dichiara: con NodeODX le opzioni di ODX, con un nodo opendronemap/nodeodm (configurazione non supportata ufficialmente, vedi Repository, immagini Docker e migrazioni) quelle di ODM. Lo stesso vale per OpenDroneMap Desktop con il suo nodo. Il confronto da riga di comando resta il più pulito.
Tabella: le 93 opzioni identiche al 6 aprile 2026#
La fotografia al momento della separazione: le opzioni di ODM 3.6.0 con i loro default, identiche in ODX. È il riferimento storico e la base per i preset portabili. Per il significato di ogni opzione: Guida completa alle opzioni.
| Opzione | WebODM / ODX (default al 6 aprile 2026) | OpenDroneMap / ODM 3.6.0 (default) |
|---|---|---|
--3d-tiles |
False |
False |
--align |
None |
None |
--auto-boundary |
False |
False |
--auto-boundary-distance |
0 |
0 |
--bg-removal |
False |
False |
--boundary |
"" |
"" |
--build-overviews |
False |
False |
--camera-lens |
auto |
auto |
--cameras |
"" |
"" |
--cog |
False |
False |
--copy-to |
- |
- |
--crop |
3 |
3 |
--dem-decimation |
1 |
1 |
--dem-euclidean-map |
False |
False |
--dem-gapfill-steps |
3 |
3 |
--dem-resolution |
5 |
5 |
--dsm |
False |
False |
--dtm |
False |
False |
--end-with |
odm_postprocess |
odm_postprocess |
--fast-orthophoto |
False |
False |
--feature-quality |
high |
high |
--feature-type |
dspsift |
dspsift |
--force-gps |
False |
False |
--gcp |
None |
None |
--geo |
None |
None |
--gltf |
False |
False |
--gps-accuracy |
3 |
3 |
--gps-z-offset |
0 |
0 |
--help |
- |
- |
--ignore-gsd |
False |
False |
--matcher-neighbors |
0 |
0 |
--matcher-order |
0 |
0 |
--matcher-type |
flann |
flann |
--max-concurrency |
4 |
4 |
--merge |
all |
all |
--merge-skip-blending |
False |
False |
--mesh-octree-depth |
11 |
11 |
--mesh-size |
200000 |
200000 |
--min-num-features |
10000 |
10000 |
--name |
code |
code |
--no-gpu |
False |
False |
--optimize-disk-space |
False |
False |
--orthophoto-compression |
DEFLATE |
DEFLATE |
--orthophoto-cutline |
False |
False |
--orthophoto-kmz |
False |
False |
--orthophoto-no-tiled |
False |
False |
--orthophoto-png |
False |
False |
--orthophoto-resolution |
5 |
5 |
--pc-classify |
False |
False |
--pc-copc |
False |
False |
--pc-csv |
False |
False |
--pc-ept |
False |
False |
--pc-filter |
5 |
5 |
--pc-las |
False |
False |
--pc-quality |
medium |
medium |
--pc-rectify |
False |
False |
--pc-sample |
0 |
0 |
--pc-skip-geometric |
False |
False |
--primary-band |
auto |
auto |
--project-path |
- |
- |
--radiometric-calibration |
none |
none |
--rerun |
"" |
"" |
--rerun-all |
- |
- |
--rerun-from |
"" |
"" |
--rolling-shutter |
False |
False |
--rolling-shutter-readout |
0 |
0 |
--sfm-algorithm |
incremental |
incremental |
--sfm-no-partial |
False |
False |
--skip-3dmodel |
False |
False |
--skip-band-alignment |
False |
False |
--skip-orthophoto |
False |
False |
--skip-report |
False |
False |
--sky-removal |
False |
False |
--sm-cluster |
None |
None |
--sm-no-align |
False |
False |
--smrf-scalar |
1.25 |
1.25 |
--smrf-slope |
0.15 |
0.15 |
--smrf-threshold |
0.5 |
0.5 |
--smrf-window |
18.0 |
18.0 |
--split |
999999 |
999999 |
--split-image-groups |
None |
None |
--split-overlap |
150 |
150 |
--texturing-keep-unseen-faces |
False |
False |
--texturing-single-material |
False |
False |
--texturing-skip-global-seam-leveling |
False |
False |
--tiles |
False |
False |
--use-3dmesh |
False |
False |
--use-exif |
False |
False |
--use-fixed-camera-params |
False |
False |
--use-hybrid-bundle-adjustment |
False |
False |
--version |
- |
- |
--video-limit |
500 |
500 |
--video-resolution |
4000 |
4000 |
| Verificato il | 2 settembre 2026 | 2 settembre 2026 |
Due note dalla documentazione di ODM: --max-concurrency è documentato con default 4, ma in pratica il motore usa il numero di core disponibili; le opzioni --time, --resize-to e --depthmap-resolution, frequenti nei tutorial vecchi, non esistono più nella serie 3.x di nessuno dei due motori.
Opzioni annunciate da una sola linea#
Riportiamo solo annunci ufficiali, con la data; quando un annuncio non specifica la sintassi, rimandiamo alla documentazione della linea.
| Voce | WebODM / ODX | OpenDroneMap / ODM |
|---|---|---|
| Checkpoint nei GCP | annunciato il 12 luglio 2026: possibilità di marcare alcuni punti del file GCP come punti di verifica, esclusi dal calcolo; sintassi e formato su docs.webodm.org | non annunciato alla data di verifica; per ottenere lo stesso risultato si tengono i check point fuori dal file GCP e si misurano a posteriori (vedi Accuratezza e validazione) |
| GPU NVIDIA RTX serie 50 | supporto annunciato il 12 luglio 2026; l'opzione che governa la GPU resta --no-gpu (default False), con GPU attiva se rilevata |
la documentazione dichiara che la "GPU currently provides no performance benefit"; --no-gpu esiste con lo stesso default |
| SfM più rapida | annunciata il 12 luglio 2026 come miglioramento interno; nessuna nuova opzione dichiarata nell'annuncio; --sfm-algorithm mantiene i valori incremental, triangulation, planar |
nessuna variazione registrata nella scheda |
| Motori alternativi dall'interfaccia | WebODM supporta MicMac (NodeMICMAC, avvio con --with-micmac) e LGT |
non documentato nella scheda |
| Verificato il | 2 settembre 2026 | 2 settembre 2026 |
Il checkpoint dei GCP è l'unica novità del 12 luglio 2026 che tocca, per quanto dichiarato, l'uso di un file di input. Se passi a ODM 3.6.0 un file GCP scritto con la sintassi dei checkpoint di ODX, il comportamento dipende da come ODM tratta ciò che non riconosce: prova prima su un dataset piccolo. Sintassi su docs.webodm.org; formato base del file, comune alle due linee, in Punti di controllo a terra.
Per la linea OpenDroneMap la scheda non registra, alla data di verifica, opzioni nuove dopo la 3.6.0. Non significa che non esistano: controlla le release su github.com/OpenDroneMap/ODM e docs.opendronemap.org/arguments, e segnalaci via Contatti ciò che manca.
Preset portabili#
WebODM gestisce i preset nell'interfaccia (Preset e opzioni base); da riga di comando un preset è la stringa di opzioni che passi al motore. Se lavori con entrambe le linee, o vuoi restare libero di cambiare, segui tre regole.
Usa solo opzioni comuni#
Finché una novità è dichiarata da una sola linea, tienila fuori dal preset di base: le 93 opzioni della tabella sono il perimetro sicuro alla data. Se ti serve un'opzione esclusiva, crea una variante con un nome che lo dica, per esempio rilievo-gcp-odx, e conserva la versione comune.
Salva i preset come testo#
Un file di testo rende i preset leggibili, versionabili e trasferibili tra installazioni e linee. Esempio per un rilievo con DSM e ortofoto a 2 cm/px:
# preset: rilievo-standard
# valido per ODM 3.6.0 e ODX (opzioni comuni al 6 aprile 2026)
# verificato: 2 settembre 2026
--dsm
--dtm
--pc-quality high
--feature-quality high
--orthophoto-resolution 2
--dem-resolution 2
--pc-las
--cog
--auto-boundary
Da riga di comando lo usi con entrambe le immagini, cambiando solo il nome dell'immagine (webodm/odm o opendronemap/odm):
docker run -ti --rm -v /home/utente/datasets:/datasets opendronemap/odm --project-path /datasets progetto $(grep -v '^#' rilievo-standard.txt | tr '\n' ' ')
grep -v '^#' scarta i commenti e tr mette le opzioni su una riga. In WebODM le stesse opzioni si inseriscono nel pannello del task e si salvano come preset con lo stesso nome.
Documenta la linea e la versione#
Ogni preset deve dire per quale motore e versione è stato verificato, come nell'esempio. A ogni nuova versione riesegui il metodo --help: un'opzione sparita produce un errore all'avvio, ed è meglio scoprirlo su un dataset di prova.
Come verificare
Hai applicato bene il metodo se:
- Hai due file
odm-help.txteodx-help.txtcon data, versione (--version) e digest (docker inspect) annotati. - Il
diffdei soli nomi delle opzioni ti restituisce un elenco che sai spiegare con gli annunci ufficiali delle due linee, oppure è vuoto. - Il tuo preset di base contiene solo opzioni presenti in entrambi i file e si avvia senza errori su entrambe le immagini.
Problemi frequenti#
Il diff mostra decine di differenze ma sono solo a capo e spazi. Usa il passo 4 (confronto dei soli nomi) oppure aggiungi a diff le opzioni -w (ignora gli spazi) e -B (ignora le righe vuote).
Un'opzione che vedo in WebODM non compare in --help del motore. Alcune voci del pannello sono dell'interfaccia, non del motore (per esempio la scelta del nodo).
Il preset funziona su una linea e fallisce sull'altra. Cerca nell'errore il nome dell'opzione non riconosciuta e controlla se è tra quelle annunciate da una sola linea. Spostala in una variante del preset.
Prossimi passi#
- Il significato e i valori di ogni opzione: Guida completa alle opzioni.
- Usa lo stesso preset per misurare i due motori sullo stesso dataset: Stesso dataset, due motori.
- Se lavori con GCP e checkpoint: Punti di controllo a terra.
Fonti
- Documentazione di WebODM e pagina delle opzioni di ODX: https://docs.webodm.org/(link esterno)
- Repository di WebODM (annunci e changelog): https://github.com/WebODM/WebODM(link esterno)
- Immagine Docker webodm/odm (tag): https://hub.docker.com/r/webodm/odm(link esterno)
- Opzioni di ODM 3.6.0 con default: https://docs.opendronemap.org/arguments/(link esterno)
- Repository di ODM (release e changelog): https://github.com/OpenDroneMap/ODM(link esterno)
- Immagine Docker opendronemap/odm (tag): https://hub.docker.com/r/opendronemap/odm(link esterno)
Guide correlate
Tutte le opzioni di WebODM e ODM: riferimento completo
Parametri avanzati · Avanzato · Entrambe le linee
I preset di WebODM e le opzioni base spiegate
Primo progetto · Base · Entrambe le linee
ODM e ODX da riga di comando con Docker
Installazione · Avanzato · Entrambe le linee
ODM e ODX a confronto: cosa hanno in comune e cosa cambia
Confronto ODM/ODX · Base · Entrambe le linee
Stesso dataset, due motori: come confrontare ODM e ODX
Confronto ODM/ODX · Avanzato · Entrambe le linee
Punti di controllo a terra (GCP) in WebODM: guida completa
Precisione · Avanzato · Entrambe le linee