G’day Folks,
I am attempting to process multi spectral imagery for the first time, so I am probably missing something obvious…
I am running WebODM 1.9.11 in Docker on Windows 10. This container has successfully processed several data sets from a P4P. It has also processed this AgroCam imagery as a standard orthophoto successfully.
If I upload just the AgroCam imagery it fails to process. If I upload both the AgriCam and P4P imagery it fails. There was an issue (operator error) that resulted in the AgroCam being flown using intervalometer so there is no semblance of synchronization between RGB and the ArgroCam. I don’t know enough about the process to know if this is relevant ?
Regards,
Pete
Dataset is here :
Error code for the geeks
===== 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 94, in execute
self.first_stage.run()
File “/code/opendm/types.py”, line 346, in run
self.next_stage.run(outputs)
File “/code/opendm/types.py”, line 346, in run
self.next_stage.run(outputs)
File “/code/opendm/types.py”, line 346, in run
self.next_stage.run(outputs)
File “/code/opendm/types.py”, line 327, in run
self.process(self.args, outputs)
File “/code/stages/run_opensfm.py”, line 192, in process
octx.run(‘export_visualsfm --points’)
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?
Full task output is truncated (not sure wherre to find the full log), but this is the point it all started to go south;
2021-12-12 10:47:11,049 DEBUG: Undistorting image 2021_1212_015620_053.JPG
[INFO] running /code/SuperBuild/install/bin/opensfm/bin/opensfm export_visualsfm --points “/var/www/data/e1403e22-ab47-4066-9abe-fde40149b4be/opensfm”
Traceback (most recent call last):
File “/code/SuperBuild/install/bin/opensfm/opensfm/io.py”, line 1221, in image_size_from_fileobject
with Image.open(fb) as img:
File “/usr/local/lib/python3.9/dist-packages/PIL/Image.py”, line 2943, in open
raise UnidentifiedImageError(
PIL.UnidentifiedImageError: cannot identify image file <_io.BufferedReader name=’/var/www/data/e1403e22-ab47-4066-9abe-fde40149b4be/opensfm/undistorted/images/2021_1212_015441_020.JPG.tif’>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “/code/SuperBuild/install/bin/opensfm/bin/opensfm_main.py”, line 15, in
commands.command_runner(
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 12, in run
self.run_impl(data, args)
File “/code/SuperBuild/install/bin/opensfm/opensfm/commands/export_visualsfm.py”, line 11, in run_impl
export_visualsfm.run_dataset(dataset, args.points, args.image_list)
File “/code/SuperBuild/install/bin/opensfm/opensfm/actions/export_visualsfm.py”, line 29, in run_dataset
export(reconstructions[0], tracks_manager, udata, points, export_only)
File “/code/SuperBuild/install/bin/opensfm/opensfm/actions/export_visualsfm.py”, line 49, in export
shot_size_cache[shot.id] = udata.undistorted_image_size(shot.id)
File “/code/SuperBuild/install/bin/opensfm/opensfm/dataset.py”, line 1112, in undistorted_image_size
return self.io_handler.image_size(self._undistorted_image_file(image))
File “/code/SuperBuild/install/bin/opensfm/opensfm/io.py”, line 1376, in image_size
return image_size_from_fileobject(fb)
File “/code/SuperBuild/install/bin/opensfm/opensfm/io.py”, line 1226, in image_size_from_fileobject
image = imread(fb)
File “/code/SuperBuild/install/bin/opensfm/opensfm/io.py”, line 1093, in imread
_, ext = os.path.splitext(path)
File “/usr/lib/python3.9/posixpath.py”, line 118, in splitext
p = os.fspath(p)
TypeError: expected str, bytes or os.PathLike object, not BufferedReader
===== 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 94, in execute
self.first_stage.run()
File “/code/opendm/types.py”, line 346, in run
self.next_stage.run(outputs)
File “/code/opendm/types.py”, line 346, in run
self.next_stage.run(outputs)
File “/code/opendm/types.py”, line 346, in run
self.next_stage.run(outputs)
File “/code/opendm/types.py”, line 327, in run
self.process(self.args, outputs)
File “/code/stages/run_opensfm.py”, line 192, in process
octx.run(‘export_visualsfm --points’)
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