This repository contains the implementation of the paper:
Calibration Wizard: A Guidance System for Camera Calibration Based on Modelling Geometric and Corner Uncertainty
Songyou Peng and Peter Sturm
ICCV 2019 (Oral)
If you find our code or paper useful, please consider citing
@inproceedings{peng2019iccv,
author = {Songyou Peng and Peter Sturm},
title = {Calibration Wizard: A Guidance System for Camera Calibration Based on Modelling Geometric and Corner Uncertainty},
booktitle = {IEEE International Conference on Computer Vision (ICCV)},
year = {2019},
}
- CMake
- OpenCV
- MATLAB
git clone https://github.com/pengsongyou/CalibrationWizard
cd CalibrationWizard
mkdir build
cd build
cmake ..
make
Tested working on Mac OSX, OpenCV 2.4.11 and MATLAB R2015b.
- First step: run binary
./bin/CalibrationWizard
and choosemode=0
to capture images freely for initial calibration. Pressspace
to capture one image. After capturing, pressESC
and the calibration is automatically done. - Second step: run
src_matlab/main_estimate.m
to estimate the next best pose. - Third step: run binary
./bin/CalibrationWizard
again and choosemode=1
. The estimated next pose should be displayed. You can try to overlay the checkerboard with the new pose, and pressspace
to capture the image.
Loop over the second and third step until you are satisfied, or tired :)
mode=0
captures images for initial camera calibrationmode=1
shows the next best pose for capturing
In addition, we provide mode=2
if you only want to perform calibration on all the captured images listed in out/images/image_list.xml
.
- Release codes of the unified system in C++ which integrates the next best pose estimation.
Sometimes the next pose is extreme so the checkerboard cannot be detected. Please consider:
- Check if the values in the uncertainty map are low. If yes, then the calibration has more or less converged.
- Consider autocorrelation matrix, simply set
autoCorr_flag=1
insrc_matlab/main_estimate.m
. - Re-run
src_matlab/main_estimate.m
.