ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
2

How can I calibrate low resolution cameras?

asked 2011-12-02 03:00:15 -0600

I'm having great difficulties calibrating the intrinsic parameters of a low resolution monocular camera. The camera is a thermal imager with 160x120 pixels, but with a good setup (two high power lamps and big calibration target) I get a pretty good monochrome image. It however appears that camera_calibration struggles with the low resolution of the camera. Over the last hours, I succeeded twice in getting all but the 'X' bar in the calibration wizard to a 'green' state, with over 120 successfully collected sample images in both cases. The 'X' bar however, refuses to become green, despite all my attempts to specifically sample points at the left and right edges of the image. I also copied the camera_calibration package and changed the code so my image gets upscaled (line 357 and following), but that didn't make calibration work significantly better. Any ideas are welcome :)

edit retag flag offensive close merge delete

Comments

This is the output for trying with a very small target (tried 8x4 before): http://pastebin.com/NZ3tfHa7 command line: "rosrun camera_calibration cameracalibrator.py --size 4x3 --square 0.072 image:=/thermal/image camera:=/thermal" This time "Y" stayed in yellow forever.
Stefan Kohlbrecher gravatar image Stefan Kohlbrecher  ( 2011-12-02 04:26:48 -0600 )edit

3 Answers

Sort by » oldest newest most voted
3

answered 2011-12-02 05:49:22 -0600

Ok, so I finally managed to succeed (after no less than 5 hours of trying). What I found out:

  • Try to get as good image quality as possible (major factor for me as I used a thermal cam)
  • Do not try to accumulate hundreds of images, it is very likely that calibration will never enable the calibration button if you have over a hundred or so. My successful try was with 59 samples. It is better to restart often than to stick to a failed calibration try.
edit flag offensive delete link more

Comments

this! and then there is still cv2.findChessboardCornersSB()

hansenchen gravatar image hansenchen  ( 2023-03-30 14:53:50 -0600 )edit
4

answered 2011-12-02 09:39:04 -0600

Patrick Mihelich gravatar image

Thanks for the report. I've committed a couple changes to camera_calibration that should make this easier in the future. The X/Y threshold is now 70%; 80% did seem too finicky in practice. Also the GUI will now permit you to calibrate with 40+ samples, even if not all the bars are green.

edit flag offensive delete link more

Comments

Hi Patrick, thanks for the fast reaction. Sounds like these changes will definitely make things easier in the future. Will report back once I have to calibrate another time :)
Stefan Kohlbrecher gravatar image Stefan Kohlbrecher  ( 2011-12-02 20:57:39 -0600 )edit
0

answered 2014-07-10 03:12:34 -0600

I'm doing the camera calibration with a very low resolution just like yours, may I ask how can you calibrate accurately?

edit flag offensive delete link more

Question Tools

Stats

Asked: 2011-12-02 03:00:15 -0600

Seen: 1,869 times

Last updated: Jul 10 '14