Camera Calibration and 3D Particle Tracking Toolbox for MATLAB®
M. Himpel, himpel@physik.uni-greifswald.de
Prelude
This toolbox has been developed to determine the motion of an ensemble of particles in a dusty plasma from stereoscopic camera image sequences. This toolbox can be used to calibrate a N-camera system and to capture and reconstruct the trajectories of the captured particles. I tried to make stand-alone modules for each of the following steps:
- N-camera calibration
- marker detection
- compute intrinsic and extrinsic camera parameters
- 2D particle position detection
- GUI-based detection preview
- sobel-filtering available
- Disparity-based calibration refinement
- Correspondence analysis to find 3D-positions
- Multiset triangulation to exclude "ghost"-particles
- Trajectory linking
Modules 3 to 6 are generally intended to work for a N-camera system. However, there may be some residuals from former restrictions to 3 or 4 cameras.
Any feedback to the author will be welcome. As the toolbox still is under development, it is possible to include further features/changes/bugfixes when reported. See documentation for details.
In the newer versions (from Dec. 2018), a so called iterative reconstruction algorithm is implemented. The documentation will be updated accordingly.
Disclaimer
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
List of Changes
2016-10-14 | initial upload, example not working yet, lots of documentation to do |
2016-11-01 | reviewed entry scripts, example not working yet |
2016-12-21 | 2d-detection revised for use with N-cameras. |
2017-01-17 | correspondence-scripts revised, EXAMPLE updated (still not user friendly from scratch) |
2017-03-02 | issues with rgb/graymap images resolved, disparity-algorithm improved |
2017-12-11 | Shake-the-box algorithm introduced!! Example_STB available! |
2018-06-19 | Major updates. Examples not running so far... |
2018-09-11 | Shake-the-box example is finally working! |
2020-04-16 | Mostly cosmetics and minor bug-fixes |
References
This toolbox relies in some parts on existing toolboxes that are available on the web. The calibration part is mainly a connection between the marker recognition functionality from the toolbox of C. Wengert [1] and the "Multiple-Camera Calibration Toolbox" from Bo Li [2]. Both of them are using parts of the "Stereo-Toolbox" from Jean-Yves Bouget [3].
The 2D-detection uses functions from John C. Crocker, David G. Grier and Eric R. Dufresne. [4]
The disparity-based calibration refinement is an implementation of the algorithm given in the paper "Volume self-calibration for 3D particle image velocimetry" by B. Wieneke [5].
The multiset-triangulation is an implementation of the algorithm given in the paper "Multiset Triangulation 3D PTV and its Performance Compared to Tomographic PIV" by Y.K. Akhmetbekov [6].
The trajectory linking is a (very) enhanced MATLAB-Example that comes with its "computer-vision system" toolbox.
The Shake-the-box algorithm is a MATLAB implementation of the algorithm given in [7].
[1] https://github.com/christianwengert/calib_toolbox_addon
[2] https://sites.google.com/site/prclibo/toolbox
[3] https://www.vision.caltech.edu/bouguetj/calib_doc
[5] B. Wieneke, "Volume self-calibration for 3D particle image velocimetry", Exp Fluids, 45 (2008)
Camera-Calibration and 3D Particle Tracking Toolbox for MATLAB®
...coming soon...
Camera-Calibration and 3D-Particle Tracking Toolbox for MATLAB®
...coming soon...