Image correction in visual feature

I am trying to implement a visual odometer algorithm through Matlab. As per step 2 at http://en.wikipedia.org/wiki/Visual_odometry . I need to perform image corrections before motion detection, matching and estimation. I think I need to distort the image like a function ( here ) in matlab. Can I use the original intrinsic and extrinsic parameter for motion estimation after the function has been negotiated? I believe it is an intrinsic parameter for a distorted image.

I am confused about the Camera Calibration Toolbox for Matlab. The internal matrix can bring the pixel back to the distorted plane. If I do the image correction first before detecting the function according to step 2 in the wiki. I think the original inner matrix will cause some error.

+3


source to share


3 answers


Here are the steps you need to follow:

  • Estimate the internal parameters of the camera by calibrating the target. You can use the Matlab Camera Calibration Toolbox, or http://www.vision.caltech.edu/bouguetj/calib_doc/
  • Take your time with this step and make sure the calibration is correct. The calibration toolbars will give you statistics on how good the calibration is. Make sure the reprogramming error (and standard deviation) is small. Also make sure that you are collecting calibration target images that cover the camera's submitted point of view with various poses.
  • The calibration you get includes an embedded 3x3 (K) matrix of the undistorted image as well as a distortion vector.

    Use K and distortion factors to "distort" images.

  • Unmount all your images and save them to disk.
  • From now on, use inexhaustible images (with K matrix) for VO or other tasks.


Denial of responsibility. You can do VOs without undistorted images, but depending on the degree of image distortion, using raw images may affect the function / descriptor detector. It's also a lot of work for each iteration to map between distorted and undistorted

Good luck.

+1


source


First, there are several visual odometry libraries that already exist for matlab. One of them is http://www.cvlibs.net/software/libviso/



However, if you plan to implement it yourself and are looking for a way to fix your images, you can get the internal / external parameters of the camera using the camera calibration toolbar: http://www.vision.caltech.edu/bouguetj/calib_doc/

0


source


To use the function undistortImage

, you need to calibrate the camera using the Camera Calibration Application or the function estimateCameraParameters

in the Computer Vision window of the System Toolbox.

0


source







All Articles