I’ve been testing WebODM with great success lately (via a docker container). On the same cloud server, I elected to install ODM natively and seemed to have got it up and running. I’ve tried to run a project with 183 geo-reffed images from a DJI Phantom 4 flight, but the process failed at the “geo-reffing” step. When the process failed, I received the following error:
Saving georeference system file to ‘/root/Projects/TestSite002/odm_georeferencing/odm_georeferencing_model_geo.txt’…
… georeference system saved.
Traceback (most recent call last):
File “run.py”, line 47, in
plasm.execute(niter=1)
File “/root/OpenDroneMap/scripts/odm_georeferencing.py”, line 136, in process
geo_ref = reconstruction.georef
AttributeError: ‘list’ object has no attribute ‘georef’
I would appreciate any guidance on how to prevent this failure.
FYI - here is a dropbox folder that contains the full console output of the process & a txt file containing my python run command with parameters:
Thanks for the response Piero. I did a few more tests and it appears like the issue is related to my election to use PMVS to create the point cloud (I find that PMVS produces better point clouds and is my preferred method.)
If I run the same process but do NOT elect to use PMVS, the process runs to completion. However, if I switch to PMVS I can successfully reproduce the error at Georeferencing.
What’s odd, is that I can successfully process the same set of photos consistently using WebODM and selecting PMVS for point cloud creation. The issue is only occurring when I run command line ODM. My preference for running ODM is that I can also set the number of cores (precessors) to use with PMVS which isn’t a setting option in WebODM (which then leaves PMVS to run on a single processor, which is not ideal for processing times).
I’m updating the dropbox folder to include benchmark.txt files between a std run and a PMVS run:
The process is clearly running into an issue at Georeferencing (presumably with something to do with the PMVS generated point cloud)… here’s a code snippet from the .py script where the error originates:
if doPointCloudGeo:
# update images metadata geo_ref = reconstruction.georef
geo_ref.parse_transformation_matrix(tree.opensfm_transformation)
# convert ply model to LAS reference system
geo_ref.convert_to_las(odm_georeferencing_model_ply_geo,
tree.odm_georeferencing_model_las,
tree.odm_georeferencing_las_json)
reconstruction.georef = geo_ref
Hello
I also received this error and confirm that the ortho mosaic worked when I did not click PMVS as an option. Thank you for this!
This is the output from a 100 image task which returned the error when I did include PMVS as an option and a link to the imagery:
Onedrive link
Imagery: https://1drv.ms/u/s!AsDrAVdsoyVVuyW8vQnyp3qVxz1q
Full task output: https://1drv.ms/t/s!AsDrAVdsoyVVuyZq6XxY1N5Q7jQQ
File “/code/run.py”, line 47, in
plasm.execute(niter=1)
File “/code/scripts/odm_georeferencing.py”, line 136, in process
geo_ref = reconstruction.georef
AttributeError: ‘list’ object has no attribute ‘georef’