Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fine grained progress + cancellation #101

Merged
merged 41 commits into from
Jul 1, 2023
Merged

Fine grained progress + cancellation #101

merged 41 commits into from
Jul 1, 2023

Conversation

krupkat
Copy link
Owner

@krupkat krupkat commented Jun 30, 2023

Fine grained progress bar when stitching, what was previously counted as a single step is now (8 + n_images):

  • finding features
  • matching features
  • estimating homography
  • bundle adjustments
  • preparing seam optimization
  • seam optimization
  • compose (n_images steps)
  • blend
  • finalize

There are also cancel checkpoints between all the steps, so that the computation can be quickly abandoned. This is useful when launching new stitching tasks e.g. when manually editing a panorama by ctrl clicking, see the video for an example:

xpano_cancel.mp4

images credit: Steven from https://monarophotography.au/

This feature required two big changes:

  • use a fork of the cv::Stitcher class to be able to add the progress monitoring and cancel checkpoints
  • refactor StitcherPipeline to manage a queue of Tasks, each of them with a separate ProgressMonitor and a cancellation flag

Using the forked Stitcher class will possibly allow modification for a 16-bit pipeline (#74)

Fixes #73

warning in debug mode: Base object is dead, while nested/derived object is still alive or processed
simplifies code, skips timing code if disabled
With override for workflows that need the future like cli or tests. Moving the ownership is useful for including a simple queue of tasks + non-blocking cancel support
@krupkat krupkat merged commit 913c10d into main Jul 1, 2023
7 checks passed
@krupkat krupkat deleted the feature-better-cancel branch July 1, 2023 11:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Better cancellation support for stitching
1 participant