Bug Report of ODM2.5.3 (ODM2.4.1 has no problem)

OpenDroneMap 2.5.3 fails to process multispectral images acquired with the Sequoia camera, while OpenDroneMap 2.4.1 has no problem at all with the same image files.

It seems to be a bug that appeared with the version upgrade from ODM2.4.1 to ODM2.5.3, but I wonder if it can be solved by setting options.

<< ODM 2.5.3>> ==================================
Generating texture atlases:
Sorting texture patches… done.

Working on atlas 1 100%... done.
Finalizing texture atlases... done. (Took: 0.959s)

Building objmodel:
Saving model… done.
Whole texturing procedure took: 5.379s
e[39m[INFO] Writing MVS Textured file in: /code/odm_texturing_25d/red/odm_textured_model_geo.obje[0m
e[39m[INFO] running “/code/SuperBuild/install/bin/texrecon” “/code/opensfm/undistorted/reconstruction_red.nvm” “/code/odm_meshing/odm_25dmesh.ply” “/code/odm_texturing_25d/red/odm_textured_model_geo” -d gmi -o gauss_clamping -t none --no_intermediate_results --nadir_mode “-L “/code/odm_texturing_25d/odm_textured_model_geo_labeling.vec”” e[0m
/code/SuperBuild/install/bin/texrecon (built on Jun 6 2021, 01:30:43)
Load and prepare mesh:
Reading PLY: 36260 verts… 71760 faces… done.
Generating texture views:
NVM: Loading file…
NVM: Number of views: 5
NVM: Number of features: 0

Loading 100%... done. (Took 0.072s)

Building adjacency graph:

Adding edges 100%... done. (Took 0.053s)
107261 total edges.

Loading labeling from file… terminate called after throwing an instance of ‘util::FileException’
what(): No such file or directory
Aborted

===== Dumping Info for Geeks (developers need this to fix bugs) =====
Child returned 134
Traceback (most recent call last):
File “/code/stages/odm_app.py”, line 83, in execute
self.first_stage.run()
File “/code/opendm/types.py”, line 338, in run
self.next_stage.run(outputs)
File “/code/opendm/types.py”, line 338, in run
self.next_stage.run(outputs)
File “/code/opendm/types.py”, line 338, in run
self.next_stage.run(outputs)
[Previous line repeated 4 more times]
File “/code/opendm/types.py”, line 319, in run
self.process(self.args, outputs)
File “/code/stages/mvstex.py”, line 108, in process
system.run(’"{bin}" “{nvm_file}” “{model}” “{out_dir}” ’
File “/code/opendm/system.py”, line 90, in run
raise SubprocessException(“Child returned {}”.format(retcode), retcode)
opendm.system.SubprocessException: Child returned 134
===== Done, human-readable information to follow… =====

e[91m[ERROR] Uh oh! Processing stopped because of strange values in the reconstruction. This is often a sign that the input data has some issues or the software cannot deal with it. Have you followed best practices for data acquisition? See https://docs.opendronemap.org/flying.htmle[0m

<< ODM 2.4.1 >> ==================================
Generating texture atlases:
Sorting texture patches… done.

Working on atlas 1 100%... done.
Finalizing texture atlases... done. (Took: 0.664s)

Building objmodel:
Saving model… done.
Whole texturing procedure took: 4.556s
e[39m[INFO] Writing MVS Textured file in: /code/odm_texturing_25d/red/odm_textured_model.obje[0m
e[39m[INFO] running /code/SuperBuild/install/bin/texrecon /code/opensfm/undistorted/reconstruction_red.nvm /code/odm_meshing/odm_25dmesh.ply /code/odm_texturing_25d/red/odm_textured_model -d gmi -o gauss_clamping -t none --no_intermediate_results --nadir_mode -L “/code/odm_texturing_25d/odm_textured_model_labeling.vec” e[0m
/code/SuperBuild/install/bin/texrecon (built on Jun 6 2021, 02:20:15)
Load and prepare mesh:
PLY Loader: comment VTK generated PLY File
Reading PLY: 36064 verts… 71370 faces… done.
Generating texture views:
NVM: Loading file…
NVM: Number of views: 5
NVM: Number of features: 0

Loading 100%... done. (Took 0.094s)

Building adjacency graph:

Adding edges 100%... done. (Took 0.054s)
106677 total edges.

Loading labeling from file… done.
Generating texture patches:
Running… done. (Took 0.084s)
109 texture patches.
Running global seam leveling:
Create matrices for optimization… done.
Lhs dimensionality: 34139 x 34139
Calculating adjustments:
Color channel 1: CG took 75 iterations. Residual is 9.81627e-05
Color channel 0: CG took 75 iterations. Residual is 9.81627e-05
Color channel 2: CG took 75 iterations. Residual is 9.81627e-05
Took 0.027 seconds

Adjusting texture patches 100%... done. (Took 0.091s)

================================================

1 Like

Sorry for lack of parameters.

Datasets
parrot_sequoia
Parrot Sequoia (red, gren, near-IR, red-edge)
https://drive.google.com/open?id=1uQfolV3X0R2WEK6axYyd3tWU0GGNrH57

Only 4 bands x 5 sets = 20 TIFF files are selected
(IMG_180822_135805_0467_GRE.TIF _RED.TIF _REG.TIF _NIR.TIF

IMG_180822_135811_0471_GRE.TIF _RED.TIF _REG.TIF _NIR.TIF)

Machine
MacBook Pro (15-inch, 2019)
macOS Big Sur 11.4
2.4 GHz 8 core Intel Core i9 (i9-9980HK)
Memory 32 GB

Docker
Docker Version 3.3.3 (64133)
CPSs : 14
Memory : 28 GB
SWAP : 1 GB
Disk image size : 120 GB

ODM options
Default

1 Like

Hey @ckato3 :hand: thanks for the report. Can confirm this is a regression bug introduced in 2.5.0. It should be fixed with Fix multispectral dataset processing by pierotofy · Pull Request #1294 · OpenDroneMap/ODM · GitHub

2 Likes

ODM 2.5.4 seems to have fixed the bugs I reported.
Thank you for your quick response.

3 Likes