Repository navigation
Conversation
A nearly-right reconstruction can now be fixed instead of re-run:
cameras the user names as wrong are taken out and placed again, cameras
moved by hand are snapped from there, and missing images are registered.
The targets are matched against the model first and the new pairs join
matches.bin. The result is fitted back onto the untouched cameras, so
the model's frame stays put. Works for equirect as for any other model.
- Mapper::repair, with the audit fan-out shared with audit()
- sfm/Repair.{h,cpp} and `spirula sfm repair`
- prefilterPairsFor: targets scored against the model only
- the editor's Repair tab: re-place, move by hand + snap, register
missing, check every camera; Keep or Discard the result
- sfm_repair_test on pinhole and equirect scenes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Repair tab shows the selected camera's photo, steps through the cameras, and can put the view where a camera stands with its own lens, which is how a wrong camera shows itself against the model. Cameras moved by hand are drawn yellow, a repair's result green (red where it could not place one) before it is kept, each beside a grey ghost of where it was. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Repair tab lists images with features but no camera. Guess places takes their poses from another model in sparse/ (aligned on shared cameras) or between file-order neighbours; Place at view sets one by hand, with the photo laid over the viewport. Register missing starts placed images from there. Mapper::repair retries hinted images until none lands, triangulating after each, so a whole missing stretch registers in one run; leftover new images fall through to growth. Adds docs/notes/camera-repair.md, a user guide to the Repair tab. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add Sfm camera repair interface
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A reconstruction often comes out mostly right: a few cameras sit in the wrong place and a few images never register. This adds a way to fix just those, against the rest of the model, without reconstructing again. Every step works on bearings, so pinhole, fisheye and equirect cameras all go through the same path. There is a new Repair tab on the Reconstruction Editor. See camera-repair.md for instructions. I have it used to repair real reconstructions already.
What's in it
Mapper::repair/spirula sfm repair--replace).--hints).--add,--add-missing).--audit).matches.bin(the original is kept as.orig)..origbackups and a reopen) or discarded with undo intact.sparse/(aligned on the cameras they share) or interpolates between file-order neighbours.docs/notes/camera-repair.md(user guide) and the repair section ofsrc/sfm/README.md.Testing
sfm_repair_test: pinhole and equirect scenes; named, hinted and audited cameras return to their poses, and missing images register.Limitations
map --resumestill doesn't readrigs.txt.