ODM icon indicating copy to clipboard operation
ODM copied to clipboard

Updating the OpenSfM and ceres

Open acsgn95 opened this issue 6 months ago • 21 comments

How did you install ODM? (Docker, installer, natively, ...)?

Natively

What is the problem?

[When I look at the ODM dependencies, The dependencies are the old versions. Especially, OpenSfM's GIT_TAG is 330. But, the last version is much faster than the recent version. And, the ceres version is 2.0.0 and it is not using CUDA. I tried that installing the last OpenSfM and ceres 2.1.0, it is succesfully installed alone. But, whenever I try to install these on ODM directly, I couldn't accomplished. OpenSfM and ceres, they are the most important library for speed.]

acsgn95 avatar Feb 02 '24 08:02 acsgn95

Our forks have a lot of patches.

Are you able to help upstream them, or rebase them on newer versions?

Saijin-Naib avatar Feb 02 '24 08:02 Saijin-Naib

We'd welcome contributions to bring these speed improvements to our OpenSfM fork and in ODM.

pierotofy avatar Feb 02 '24 17:02 pierotofy

Now, I'm still getting more serious conflicts. When I upgrade Ceres, OpenSfM does not cause problems, but OpenMVS does. I solved it but other libraries produce conflicts. Share your ideas with me. I'm working on this right now and if I succeed I'll push these.

acsgn95 avatar Feb 02 '24 17:02 acsgn95

Oof... We might have to start with a dependency tree and highlight libs that you are having issues with.

Saijin-Naib avatar Feb 02 '24 17:02 Saijin-Naib

Ceres is an optional dependency in OpenMVS and doesn't affect ODM (it's used in a module we don't use), set OpenMVS_USE_CERES OFF?

pierotofy avatar Feb 02 '24 17:02 pierotofy

Where do we use Ceres? WebODM toolchain only?

Saijin-Naib avatar Feb 02 '24 17:02 Saijin-Naib

Where do we use Ceres? WebODM toolchain only?

We are using ceres for opensfm...

acsgn95 avatar Feb 02 '24 17:02 acsgn95

Oof... We might have to start with a dependency tree and highlight libs that you are having issues with.

That is super idea...

acsgn95 avatar Feb 02 '24 17:02 acsgn95

I think, I am so close to solve problem. But, I have taken a problem about PoissonRecon. I didn't change anything about it but it gives me make error. @pierotofy @Saijin-Naib

acsgn95 avatar Feb 08 '24 11:02 acsgn95

Can you post the full build log?

Saijin-Naib avatar Feb 08 '24 18:02 Saijin-Naib

build.log This is the full build log... @Saijin-Naib @pierotofy Also, it has a problem about opencv

acsgn95 avatar Feb 09 '24 06:02 acsgn95

@acsgn95 -- do you have a fork I can test?

smathermather avatar Feb 19 '24 15:02 smathermather

@acsgn95 -- do you have a fork I can test?

Not yet. But it will be

acsgn95 avatar Feb 19 '24 15:02 acsgn95

If I can the solve the problem which downside, It will happen. I am installing succesfully but I cannot start the process. @pierotofy @smathermather @Saijin-Naib

Traceback (most recent call last): File "/home/ahmet/ODM___/run.py", line 15, in <module> from opendm.utils import get_processing_results_paths, rm_r File "/home/ahmet/ODM___/opendm/utils.py", line 5, in <module> from opendm.photo import find_largest_photo_dims File "/home/ahmet/ODM___/opendm/photo.py", line 19, in <module> from opensfm.sensors import sensor_data File "/home/ahmet/ODM___/SuperBuild/install/bin/opensfm/opensfm/__init__.py", line 6, in <module> from opensfm import pybundle ImportError: /home/ahmet/ODM___/SuperBuild/install/bin/opensfm/opensfm/pybundle.cpython-38-x86_64-linux-gnu.so: undefined symbol: cudaMemcpyAsync

Also ceres installation conf's -DCUDA is ON My CUDA version is 11.7

acsgn95 avatar Feb 20 '24 11:02 acsgn95

Any update? I couldn't found @smathermather @pierotofy @Saijin-Naib @mojodna

acsgn95 avatar Feb 21 '24 07:02 acsgn95

Be gentle on timing here. One message is enough. People are likely doing other things, and responses may take time.

It's much harder for me to troubleshoot through your logs. If you have a fork and branch I can test, that is the easiest way for me to understand what is happening. Thanks for working on this and updating.

smathermather avatar Feb 21 '24 11:02 smathermather

@smathermather I apologize if I was misunderstood. My intention was not to reproach or offend you. I just wanted to keep communication strong. Okey, I am waiting and working on this topic. Also, I will share the fork for testing

acsgn95 avatar Feb 21 '24 11:02 acsgn95

No worries. Very happy for the energetic approach.

smathermather avatar Feb 21 '24 11:02 smathermather

The main branch of mapilliary/opensfm is support ceres.solver.2.1.0. I tried install it inside ODM. And, I changed some python scripts from ODM/opensfm. I have taken a problematical orthophoto

acsgn95 avatar Feb 28 '24 16:02 acsgn95

Actually, There is a speed up with ceres solver 2.1 with 20 percentage. In reconstruction stage

acsgn95 avatar Feb 28 '24 16:02 acsgn95

Oooh, that is awesome!

Saijin-Naib avatar Feb 28 '24 19:02 Saijin-Naib