Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 

DVS Camera Calibration

This repository provides software for an automatic camera calibration of a DVS128. It uses the calibration framework of Jean-Yves Bouguet (http://www.vision.caltech.edu/bouguetj/calib_doc/index.html) together with a recently proposed feature detections method for low-resolution cameras (https://github.com/RobVisLab/camera_calibration). For showing a fullscreen picture in MATLAB, the repository contains the code from https://de.mathworks.com/matlabcentral/fileexchange/11112-fullscreen .

The main idea of this framework is to use a LCD monitor as calibration target. By recording a flickering target, it is easy to reconstruct images by simple addition of all observed events.

The software consists of two parts, a camera grabber written in C++ and the main calibration routine in MATLAB.

Compiling

For your convenience, the required libraries that are on Github are added as submodules. So clone this repository with --recursive or do a

git submodule update --init --recursive

after cloning.

This software requires:

To compile, first build and install libcaer, then the grabber:

cd libcaer
cmake .
make
(sudo) make install
cd ../grabber
mkdir build
cd build
cmake ..
make

Per default, the application will compile to support the iniLabs DVS128.

Usage

Run the do_calibration.m file in MATLAB. It will capture 20 images using a flickering target and then start the calibration routine. Adapt resolution=[1920,1080]; to the resolution of your second screen (fullscreen.m only works reliably on the non-primary monitor).

In case you get an error about a broken .mexa64 file on Linux systems, you will have to override the libstdc++.so.6 that comes with MATLAB by executing export LD_PRELOAD=$LD_PRELOAD:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:/usr/lib/x86_64-linux-gnu/libprotobuf.so.9 before starting MATLAB.

During the calibration, the target will flicker for approximately 2 seconds, after that you have 3 seconds to reposition the camera before the next picture is taken. Make sure to take pictures from different angles and distances to the target. Use a tripod in order to minimize camera movement!

A few images are already included in the data/ folder to test the method without a camera.

The result of the calibration is stored in the following variables:

Calibration results after optimization (with uncertainties):

Focal Length:          fc = [ 158.85961   158.52668 ] +/- [ 2.81702   2.86259 ]
Principal point:       cc = [ 63.50000   63.50000 ] +/- [ 0.00000   0.00000 ]
Skew:             alpha_c = [ 0.00000 ] +/- [ 0.00000  ]   => angle of pixel axes = 90.00000 +/- 0.00000 degrees
Distortion:            kc = [ -0.19702   0.00000   0.00000   0.00000  0.00000 ] +/- [ 0.01750   0.00000   0.00000   0.00000  0.00000 ]
Pixel error:          err = [ 0.05699   0.05704 ]

About

Automatic Camera Calibration for DVS cameras

Resources

Releases

No releases published

Packages

No packages published