Repository navigation
[WIP] #220 calibration - #324
ErichZimmer wants to merge 154 commits into
Conversation
- Implemented initial Schur LM optimizer; c++ implementable using linear algebra - Added bundle adjustment calibration - Add fix for bundle adjustment by correcting camera orientation when looking at global board pose - Refined the pinhole model to be more reliable; allows for future pane and cylinder refractive indice models
- Subject to a possible refactor since I find it hard to follow and understand at times
|
Calibration module is nearly complete. I tested Tomo-PIV on a three camera system with checkerboard free-hand calibration with the first image setting origin. The errors from a A4 printed checkerboard pattern approaching 0.3 pixels and ~0.08 mm RMS error. Some more utilities are needed for mainstreaming the calibration process when manual origins are to be specified, stereo-piv may be moved out of the calibration module since it is it's own thing for the most part (and also needs an implementation fix on self-calibration). Refractive interface support is in planning phase, but actual implementation may not be done depending if there is a real need for it. The calibration module may go through a few more revisions before it is pulled from draft. |
|
Note one issue occurred during the merging of upstream to local which resulted in all files in the repo being marked as modified even though they retain original state. This issue is being investigated to see if it can be removed and if so, what are the side-effects. Contrarily, the side-effects of keeping all these changes are also being investigated since it may cause merge conflicts. |
- Sometimes, the corner of the checkerboard would be out of view, but there is enough information to reconstruct the board definition. Normally, this causes the board to be discarded, but with nan handeling, it can simply be nan'd out. - Allows for calibration targets to be partially out of view as long as sufficient info is available to reconstruct board - bundle adjustment now runs smoother since it can handle more edge cases
- Also urged the importance of an origin frame. It will seriously messup your day without one
Preface
This quite large pull request entails the addition of a geometric camera calibration module that can be used for de-warping planar PIV images, stereo-PIV experiments, and tomo-PIV experiments. With over 25 new functions and three of the most common camera models, nearly any PIV experiment can be calibrated before further processing and reconstructions. This pull request contains the following new additions:
Along with all these new function, a large quantity of tests have been added too (more than 50 for the camera models alone). However, this module is still a work-in-progress and will be so for many weeks to months until the final product is considered production worthy.
Note
I added tomographic PIV test data in the
openpiv/data/test7directory. It is around 40 MB for this section of the dataset.Important
Documentation will have to be rebuilt once pull request is merged and a new version is released.
How to test this
What issue does this PR address?
Closes #220
Additional Context
This module is primarily for 3D imaging systems such as
However, it can also be used for
Checklist
Additionally, here is a checklist of future tasks to be completed: