[ERROR] Uh oh! Processing stopped because of strange values in the reconstruction

Hi Folks,

What a great asset you’ve created with webODM. An impressive FOSS I’d say and you all deserve a big cheering. Thanks a bunch.

I recently pulled webODM – just about 8 days ago – while trying to get into hobby mapping and 3D with my drone. I produced one first project and it was a smooth sail. I decided to try a bigger image set of about 454 pictures and it seemed to be going well until I got the [oh uh] notice of an error.
Console Log:

2022-08-15 07:34:37,639 DEBUG: Undistorting image DJI_0508.JPG
2022-08-15 07:34:38,142 DEBUG: Undistorting image DJI_0217.JPG
2022-08-15 07:34:38,144 DEBUG: Undistorting image DJI_0230.JPG
2022-08-15 07:34:38,355 DEBUG: Undistorting image DJI_0273.JPG
[INFO] running “/code/SuperBuild/install/bin/opensfm/bin/opensfm” export_visualsfm --points “/var/www/data/92a414cc-1b04-47bf-82b0-b13cac53d892/opensfm”
[INFO] Finished opensfm stage
[INFO] Running openmvs stage
[INFO] running “/code/SuperBuild/install/bin/opensfm/bin/opensfm” export_openmvs “/var/www/data/92a414cc-1b04-47bf-82b0-b13cac53d892/opensfm”
Traceback (most recent call last):
File “/code/SuperBuild/install/bin/opensfm/bin/opensfm_main.py”, line 25, in
File “/code/SuperBuild/install/bin/opensfm/opensfm/commands/command_runner.py”, line 38, in command_runner
command.run(data, args)
File “/code/SuperBuild/install/bin/opensfm/opensfm/commands/command.py”, line 13, in run
self.run_impl(data, args)
File “/code/SuperBuild/install/bin/opensfm/opensfm/commands/export_openmvs.py”, line 13, in run_impl
export_openmvs.run_dataset(dataset, args.image_list)
File “/code/SuperBuild/install/bin/opensfm/opensfm/actions/export_openmvs.py”, line 13, in run_dataset
reconstructions = udata.load_undistorted_reconstruction()
File “/code/SuperBuild/install/bin/opensfm/opensfm/dataset.py”, line 982, in load_undistorted_reconstruction
return io.reconstructions_from_json(io.json_load(fin))
File “/code/SuperBuild/install/bin/opensfm/opensfm/io.py”, line 1020, in json_load
return json.load(fp)
File “/usr/lib/python3.9/json/init.py”, line 293, in load
return loads(fp.read(),
File “/usr/lib/python3.9/json/init.py”, line 346, in loads
return _default_decoder.decode(s)
File “/usr/lib/python3.9/json/decoder.py”, line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File “/usr/lib/python3.9/json/decoder.py”, line 353, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting ‘,’ delimiter: line 1 column 10774332 (char 10774331)

===== 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 88, in execute
File “/code/opendm/types.py”, line 378, in run
File “/code/opendm/types.py”, line 378, in run
File “/code/opendm/types.py”, line 378, in run
[Previous line repeated 1 more time]
File “/code/opendm/types.py”, line 359, in run
self.process(self.args, outputs)
File “/code/stages/openmvs.py”, line 36, in process
File “/code/opendm/osfm.py”, line 34, in run
system.run(’"%s" %s “%s”’ %
File “/code/opendm/system.py”, line 106, in run
raise SubprocessException(“Child returned {}”.format(retcode), retcode)
opendm.system.SubprocessException: Child returned 1

===== Done, human-readable information to follow… =====

[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 Flying Tips — OpenDroneMap 2.8.8 documentation

Attached is the dump of the log. Any help to troubleshoot? Unfortunately being on a low bandwidth network so having the challenge of uploading all the 454 images to a decent place for debugging. If there is any need for it I’ll simply have to try again but please take a look at my log and advice what steps to take.
All settings are default and am doing this on an i7 with 16gigs RAM on Windows 11. I tried searching the site but similar results were not actually that similar with this case - especially knowing am on the latest version.

Looking forward to your revert. Hopefully, this is a similar issue but not the same as existing issues reported in the past. Kindly look into it.

Welcome to the community :slightly_smiling_face:

I don’t understand the error log, but with only 16GB RAM, you may have run out of memory when processing that many images.
Did you use default settings without selecting 3D or high resolution etc?
How much virtual memory do you have, and how is it configured?

Thanks for the follow-up. Here’s the full console log detail with configuration and processing before the error.

Console log

It looks like your images are feature-poor, the detection threshold had to be reduced to very low levels to find sufficient features. Then you ended up with 12 partial reconstructions, so you might not have enough overlap.

How much forward and side overlap did you have?

What sort of scene is it?

Hi, thanks for the response and hints. I reduced the detection threshold to low and ended up working. There was ample overlap using DL.

How much forward and side overlap did you have?
Front overlap - 75%, Side overlap - 70%…
Could movements of cars lead to feature matching issues?

What sort of scene is it?
It’s a park. Do find snapshots of the project here:

Thanks a bunch for taking the time to respond. Much appreciated.

1 Like

A large body of water in the middle and much of the rest covered in what looks like forest is always going to be a bit tricky to get a good result. Was there any wind while you were flying? That moves the trees around, making feature matching difficult.

It’s a bit hard to tell from those low res images, but is there any motion blur in your drone images?

If no wind, you may get better results using ultra feature matching, but I suspect it will fail due to insufficient memory, unless you have plenty of virtual memory configured correctly, but it will be very slow, even with a fast SSD.

1 Like

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