Camera calibration and fish eye cameras
HI all, Can camera_calibration package be used to calibrate fish eye cameras?
ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
HI all, Can camera_calibration package be used to calibrate fish eye cameras?
The quality of calibration will depend on the type of lens you´re using. For very high FOV lenses, camera calibration will likely fail or give unusable results, as the pinhole camera model that is used behind the scenes via OpenCV does not work with high FOV (> 180 deg, projecting points onto an image plane and all that). See also this answer at stackoverflow. For moderate fish-eye effect, calibration might work, though.
Your best bet is probably using OCamCalib for determining proper calibration (see also comment in the link I posted above). After determining calibration parameters, you should be able to use your own variants of the world2cam and cam2world functions (If possible, you could even provide a ROS package with their implementation, so everybody can use them ;) ).
Short answer: Probably yes. It should be easy to try, and should only take 15-30 minutes to try once you have a calibration target printed.
Long answer: You can probably use the camera calibration package to compute the appropriate camera intrinsics values for you camera. You may see a lot of cropping if you use the computed intrinsics with the stock image_proc to do rectification.
Hello
Perhaps too late, but I added this functionality (fisheye calibration and rectification with OpenCV>3) in this fork: image_pipeline
You can calibrate (with a tool) and rectify fisheye cameras.
The results for high FOV (+180deg) are better that those achieved with the current implementation
It looks like OpenCV 3.0.0 (and maybe earlier?) has fisheye calibration support: http://docs.opencv.org/3.0-last-rst/m...
I've used it a few times and the results are okay, reprojection errors seem to run higher but that maybe goes along with using a fisheye lens.
There aren't any python cv2 function definitions in that section though, but this issue http://code.opencv.org/issues/4071 says the python is done. I think some of the camera_calibration quality metrics won't report goodness if the chessboard can't get into every corner of image, so a fisheye camera that has a black border around a circle may not do well.
Asked: 2014-03-04 20:16:21 -0500
Seen: 11,954 times
Last updated: Apr 25 '16
camera_calibration for multiple camera setup
how to calibrate a 2D camera with respect to Kinect?
How do you make calibration boards?
kinect's rgb camera with camera_calibration
TF Frame Convention for Stereo Cameras
cameracalibrator.py doesn't work with --no-service-check?