-
Notifications
You must be signed in to change notification settings - Fork 144
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
[WIP] #220 calibration #324
base: master
Are you sure you want to change the base?
Conversation
@alexlib |
@ErichZimmer all the tests pass (when I run it from the /openpiv/tests folder. What's missing is an example of how to use it. Do you want to zoom and then we figure it out together? I'd be happy to learn what/how you plan to use it for. |
We could do a zoom in the future (I'll have to allocate time in advance so it won't be on some wacky time). Additionally, I'll be adding some examples on my off-days along with working on the rest of the calibration utilities. On calibration utilities, these are still mostly in the draft phase. It is just the camera models that are mostly finished after lots of planning and drawings by hand. However, the calibration utilities and models are still enough to successfully perform MLOS-based Tomo-PIV and other TOMO-PIV reconstruction algorithms that do not utilize optical transfer functions (OTF). This is mostly because OTFs require a basic PTV implementation (segmentation and particle matching), which I'll be using either an advanced iterative particle reconstruction algorithm or epipolar matching for locating particles for the volume self calibrations (VSC) and OTF calibrations. For VSC, it is broken down into two parts, a course and a fine VSC algorithm. The course VSC algorithm uses a correlation-based algorithm to minimize large camera drifts (literature reports up to 18 pixels) and the fine VSC uses a PTV-based algorithm with ghost particle suppression to refine the calibration as much as possible. Ideally, this would allow a camera system to be calibrated with a greater tolerance towards camera malignment (something I desperately need in my attic and backyard shed lab). Oh, on a final note, I plan on incorporating wand-based calibration utilities and possibly refraction interfaces for the pinhole camera based on OpenPTV. This is mostly for the extrinsic parameters as the algorithm by Zang handles the calibration of the intrinsic parameters (except for distortion which is something I just realized I forgot). |
to run docs without warnings
@alexlib Never mind, it looks like it only applies for pull requests that are capable of being merged. |
I have no idea. I suggest you try it in a separate branch, not in master. |
What is really needed here @ErichZimmer are tutorials - what are the use cases for calibration, how to use it, how to choose different models, what the user gets at the end of the story? calibrated stereo? how to use it with OpenPIV, etc. |
Indeed, documentation and notebooks are really important. In fact, I am currently working on a few notebooks at the moment which mainly covers the following:
As I do the notebooks, I am constantly refactoring the calibration module, though, since the only way to improve such a module is to physically use it. For instance, using Zhang's calibration method on a free-form calibration target allowed for a simple stereo-vision system to be setup where I can calculate the distance of an object in my room via triangulation. However, things have been slow for the past month or so since I unfortunately did catch a weird strain of SARS-COV-2 in addition to participating in some rather time consuming university courses. |
wish you a quick and full recovery. if I can help, please share with me the details. |
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/test7
directory. 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: