An error occur [Processing stopped because of strange values in the reconstruction]

Question

Hi. I have a question.

I experimented with the sample dataset [ODMData].
I tried it several times, but it ended with an error.
I thought all the sample datasets would work without options, but I’m not sure if there is a problem with the dataset or if I need to adjust the options.
The shitan_tw dataset was successful with the same settings.

I wrote the detailed information below.
If anyone has a hint, I would like you to teach it.

Datasets

Machine

  • MacBook Pro (16-inch, 2019)
  • OS: macOS Big Sur ver. 11.4
  • Processor: 2.4 GHz 8core Intel Core i9
  • Momory: 32GB

Docker Setting

  • Docker version: 20.10.6
  • CPUs: 8
  • Memory: 16GB
  • Swap: 1GB
  • Disk image size: 59.6GB

Command

docker run -ti --rm -v ~/work/datasets:/datasets opendronemap/odm:2.5.1 --project-path /datasets project

Excerpt from the end of the log

2021-05-28 13:56:01,948 DEBUG: Undistorting image DJI_0443.JPG
2021-05-28 13:56:01,960 DEBUG: Undistorting image DJI_0669.JPG
2021-05-28 13:56:02,214 DEBUG: Undistorting image DJI_0398.JPG
e[39m[INFO]    running /code/SuperBuild/install/bin/opensfm/bin/opensfm export_visualsfm --points "/datasets/project/opensfm"e[0m
e[39m[INFO]    Finished opensfm stagee[0m
e[39m[INFO]    Running openmvs stagee[0m
e[39m[INFO]    running /code/SuperBuild/install/bin/opensfm/bin/opensfm export_openmvs "/datasets/project/opensfm"e[0m
e[39m[INFO]    Running dense reconstruction. This might take a while.e[0m
e[39m[INFO]    Estimating depthmapse[0m
e[39m[INFO]    running /code/SuperBuild/install/bin/OpenMVS/DensifyPointCloud "/datasets/project/opensfm/undistorted/openmvs/scene.mvs"  --resolution-level 3 --min-resolution 684 --max-resolution 4394 --max-threads 8 --number-views-fuse 2 -w "/datasets/project/opensfm/undistorted/openmvs/depthmaps" -v 0e[0m
13:58:33 [App     ] Build date: May 25 2021, 16:18:02
13:58:33 [App     ] CPU: Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz (8 cores)
13:58:33 [App     ] RAM: 15.64GB Physical Memory 1024.00MB Virtual Memory
13:58:33 [App     ] OS: Linux 5.10.25-linuxkit (x86_64)
13:58:33 [App     ] SSE & AVX compatible CPU & OS detected
13:58:33 [App     ] Command line: /datasets/project/opensfm/undistorted/openmvs/scene.mvs --resolution-level 3 --min-resolution 684 --max-resolution 4394 --max-threads 8 --number-views-fuse 2 -w /datasets/project/opensfm/undistorted/openmvs/depthmaps -v 0
13:58:49 [App     ] Preparing images for dense reconstruction completed: 425 images (15s309ms)
13:58:51 [App     ] Selecting images for dense reconstruction completed: 3 images (2s251ms)

Estimated depth-maps 1 (33.33%, 512ms, ETA 1s)...
Estimated depth-maps 2 (66.67%, 995ms, ETA 497ms)...
Estimated depth-maps 3 (100.00%, 1s, ETA 0ms)...
Estimated depth-maps 3 (100%, 1s439ms)

Fused depth-maps 3 (100%, 10ms)
13:58:53 [App     ] Densifying point-cloud completed: 0 points (19s202ms)
13:58:53 [App     ] MEMORYINFO: {
13:58:53 [App     ] 	VmPeak:	 2453048 kB
13:58:53 [App     ] 	VmSize:	 1992524 kB
13:58:53 [App     ] } ENDINFO
e[39m[INFO]    running /code/SuperBuild/install/bin/OpenMVS/DensifyPointCloud --filter-point-cloud -1 -i "/datasets/project/opensfm/undistorted/openmvs/scene_dense.mvs" -v 0e[0m
13:58:53 [App     ] Build date: May 25 2021, 16:18:02
13:58:53 [App     ] CPU: Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz (8 cores)
13:58:53 [App     ] RAM: 15.64GB Physical Memory 1024.00MB Virtual Memory
13:58:53 [App     ] OS: Linux 5.10.25-linuxkit (x86_64)
13:58:53 [App     ] SSE & AVX compatible CPU & OS detected
13:58:53 [App     ] Command line: --filter-point-cloud -1 -i /datasets/project/opensfm/undistorted/openmvs/scene_dense.mvs -v 0
13:58:53 [App     ] error: empty initial point-cloud

===== Dumping Info for Geeks (developers need this to fix bugs) =====
Child returned 1
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 1 more time]
  File "/code/opendm/types.py", line 319, in run
    self.process(self.args, outputs)
  File "/code/stages/openmvs.py", line 160, in process
    system.run('%s %s' % (context.omvs_densify_path, ' '.join(config)))
  File "/code/opendm/system.py", line 90, in run
    raise SubprocessException("Child returned {}".format(retcode), retcode)
opendm.system.SubprocessException: Child returned 1
===== 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
1 Like

Welcome!

Sorry you’re having trouble.

Do you think you could bump Docker’s memory allocation up to 24GB or 28GB and try again?

1 Like

I wouldn’t assume that all datasets in the datasets page process with the defaults. Some might require tweaking of settings. Others are specifically challenging (e.g. odm_data_copr) to test the limits.

2 Likes

Thank you for your answer!
I tried it with 30GB and the result was the same.
I tried it with --feature-quality=lowest and it was successful.
Some parameter adjustments may also be needed in the sample dataset.

1 Like

Thank you for answering.
I tried it with --feature-quality=lowest and it was successful.
As you say, it seems that some parameter adjustment is necessary.
This time I succeeded with this option, so I’ll complete this question.

1 Like

Glad you got it sorted!

I wouldn’t leave OSX with less than 4GB of RAM to work with while docker is running, so I’d stick Docker back at 28GB at the most.

Yes, tuning of parameters is an art that we’re all learning.

1 Like