Hybrid bundle adjustment- faster or slower?

I thought I read when editing the processing parameters that hybrid bundle adjustment was a bit quicker, so thought I’d test it on this 8305 image set. However, watching the log I’m seeing 30sec-3 mins between each image addition, vs 3-6 seconds in the previous task where I did not have it set.
Previous 3530 image set took 28 hours to complete, but I can see this taking many weeks with it taking 10 - 30 times as long to add each image.
So the question is, do I write off the 42 hours already spent on this task and try again without hybrid bundle adjustment, or persevere in the hope that it will suddenly get faster towards the end?

For the same images, note the vastly different times to add the next image

No hybrid bundle adjustment:
2021-11-07 16:23:56,822 INFO: DJI_0560_3.JPG resection inliers: 3428 / 3510
2021-11-07 16:23:56,888 INFO: Adding DJI_0560_3.JPG to the reconstruction
2021-11-07 16:24:01,150 INFO: -------------------------------------------------------
2021-11-07 16:24:01,277 INFO: DJI_0577_3.JPG resection inliers: 3662 / 3746
2021-11-07 16:24:01,351 INFO: Adding DJI_0577_3.JPG to the reconstruction

Hybrid bundle adjustment:
2021-11-09 16:01:39,886 INFO: DJI_0560_3.JPG resection inliers: 3394 / 3521
2021-11-09 16:01:39,954 INFO: Adding DJI_0560_3.JPG to the reconstruction
2021-11-09 16:01:40,644 DEBUG: Ceres Solver Report: Iterations: 3, Initial cost: 3.010221e+00, Final cost: 2.095883e+00, Termination: CONVERGENCE
2021-11-09 16:02:06,814 INFO: Removed outliers: 37
2021-11-09 16:02:14,650 INFO: -------------------------------------------------------
2021-11-09 16:02:14,844 INFO: DJI_0577_3.JPG resection inliers: 3751 / 3827
2021-11-09 16:02:14,929 INFO: Adding DJI_0577_3.JPG to the reconstruction
2021-11-09 16:02:15,571 DEBUG: Ceres Solver Report: Iterations: 3, Initial cost: 2.597850e+00, Final cost: 1.778209e+00, Termination: CONVERGENCE
2021-11-09 16:02:42,766 INFO: Removed outliers: 30
2021-11-09 16:02:50,502 INFO: -------------------------------------------------------

1 Like

My understanding was the same as yours:
With sufficiently large numbers of images, it should help things speed along.

I’ve never had enough images to vet it, however.

Stephen may have more experience.

1 Like

It’s been a while since I’ve done a speed comparison, but it could be that the hybrid logic is trailing the core features of the library that have gotten much faster since hybrid was written.

The idea is to every 100(?) images (used to be tunable, but Piero took that out and I didn’t notice in time to protest :slight_smile: ) the actual SfM model gets tuned. In between, the images are added and matched, but the whole model isn’t adjusted.

Now, you may be seeing it only update for those tuned events, in which case it is doing the job properly. But it’s been a while since I’ve used it as it does lose some accuracy and I needed every bit of accuracy I could squeeze out of my recent datasets.


I suspect not, as the 2 consecutive images from the first example appear in the same order when using bundle adjustment.
I think I’ll just have to write off this task and start again without hybrid bundle adjustment, as at an optimistic 1.5 minutes per image addition, its going to take nearly 9 days just to add the images, whereas I was hoping the whole job would complete in about 3 days, based on the earlier subset’s time taken!


Ah, that’s a shame. It is a super useful algorithm for these larger datasets when it works.


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