cvg / limap

A toolbox for mapping and localization with line features.
BSD 3-Clause "New" or "Revised" License
691 stars 68 forks source link

Localization is extremely slow with Ceres 2.2.0 Manifold #6

Open MarkYu98 opened 1 year ago

MarkYu98 commented 1 year ago

After updating to Ceres 2.2.0 as enabled by b58d4fb4 the localization pipeline becomes significantly slower (e.g. on 7Scenes stairs 7.5min -> 40min, and for the single-case test script 3s -> 5s).

thuanaislab commented 9 months ago

For the chess scene, it even takes about 600s to estimate a single camera pose. Any update for enhancement?

thuanaislab commented 9 months ago

I found that if we run multiple pose estimations at the same time (ex: terminal 1 for eval. chess, 2 for stairs). It will lead to extremely slow as above. Otherwise, if running only a single estimation (ex: only evaluating stairs scene), time per pose is 2s-5s as normal.

MarkYu98 commented 9 months ago

Hi, are you using Ceres 2.2.0 or a version before?

thuanaislab commented 9 months ago

Hi, I am using version 1.13

MarkYu98 commented 9 months ago

We did not test against Ceres version < 2.0.0. With version 2.0.x and 2.1.x we did not encounter the problem when running multiple estimations. (With 2.2.0 the slow speed is caused by the reason in this issue). Could you check if your machine is memory-bound when evaluating the chess scene? I think the chess scene is significantly larger than the stairs scene.