PS2a: Camera Calibration Details

Instructor Irfan Essa (TSRB 230A)
Office Hrs: After Class

Location: ES&T L1125
TA Jaeil (Jerry) Choi (TSRB 230)
Office Hrs: Mon & Thu 11a-12n
Day/Time: Tue-Thu 3:05pm - 4:25pm
    Labs: Digital Media Lab (DML) (IntelPCs) (CCB 104a), & Mac Lab (CCB 130)

horizontal rule

DVFX 2006
Site Menu

Home
Up
Schedule
Coweb/Swiki
TiddlyWiki
Producers
Groups
Information
Books etc.
Resources
Readings
Thanks

Additional Information

DVFX@GT
CPL@GT
GVU@GT
CoC@GT
GA Tech
Related Classes

 

 

PS2a: Camera Calibration, Details.

(By Gabriel Brostow, TA for DVFX 1999-2002, Minor updates by Jerry Choi 2006).

  1. Check camera inventory sheet when checking camera out, so youÂ’re not held responsible for things which were already missing. For this project, you should not need to borrow equipment for more than a day, but you have it for few days just in case. You should buy one or more of your own DV tapes. These can be close to $5 if you buy in bulk (feel free to share shopping tips on the SWIKI). When using a blank tape for the first time, record it from start to finish with the lens covered, so it has a consistent time-code. This will prevent problems when dumping to the drive.
  2. Remember to switch to manual focus and progressive scan. This is critical for camera calibration.
  3. You can print a calibration file of your own (make the squares are all the same and line them up) and mount it on a perfectly planar surface. For a checker-pattern that is nominally (because printers stretch printouts) 28mm^2, grab PS2a_checkerGrid4x5_28mm.pdf (or PS2a_pattern.pdf though it's not prefectly squared). You can also use the larger calibration pattern located in TSRB 325 (It's behind the green screen; You can take it outside with an arrangement. Contact TA). Remember to measure the exact width and height of a square. For example, measure width of 4 boxes (B, W, B, W) and divide total by 4 to get a more accurate X-dimension. Record in cm. for later. Origin is in upper left of the pattern pictured here, and I skipped the first and last row of boxes since the printer chopped them short.
  4. (for calibration) Fix the camera, and move the pattern around so it takes up most of the field of view, and try to explore the space: show different positions and orientations, keeping the origin-corner as the left-top most corner in the image. Without moving the camera (or changing the zoom/focus!), move around in the scene or do something simple – this is just to show that it’s a sequence and not a single frame. Keep it short (30sec or less), and possibly make it relate to the 3D graphics you’ll be adding later. Don’t worry if you don’t yet know where you’ll be adding stuff to the scene (just glare in random directions for now).
  5. (for CG composition) Snap multiple “home” position images (fixed camera and the pattern, with different distance, viewing angle, etc.) Never do anything that can change the intrinsic parameters of the camera (zooming, etc.)


  6. (for match-move) Move the camera in the fixed scene (or at least with enough fixed 'feature' points in the scene). Keep this under 30 sec. DonÂ’t move the camera too drastically. This will be used only if we can obtain some match-move software licenses, and will only be important for the more ambitious groups.
  7.   Each camera has a DV cable, which doesnÂ’t look like the RCA, or the S-Video cables in the bag. It connects to the panel on the front of the DVFX PCÂ’s in the States PC cluster. DVRaptor software is installed on all those machines, and you donÂ’t have much need for the Navi software right now, unless you already recorded so much data that you want to easily index to the tape. Turn the camera to VCR mode before starting the software, and youÂ’ll be able to control the “deck” using the on-screen controls. Video plays back on the LCD of the camera, and may not show up in the Raptor softwareÂ’s preview window – thatÂ’s ok. I usually use the batch capture utility (in one of the menu options). It lets you mark the start (in) and stop (out) points of each part of the tape that I want to dump to a separate file. Once marked and given a file-destination, “ADD” each desired clip to the batch-capture list. You can save and update this list if things break down for some reason. If you get an error that the “in point” canÂ’t be found, you may need to reboot the PC (so save that list to a safe place). Dump to E since itÂ’s fast and hopefully not very fragmented, and either capture the data to smaller clips (calib clip, action clip, moving camera clip, etc.), or segment a larger file in Premiere so that you donÂ’t have to burn drive-space by saving video which you wonÂ’t use. That said, donÂ’t trash data you “might” want later. CD-burners should be working now (hint-hint).
  8. Premiere is ok for this, just export a frame instead of a movie. DonÂ’t dare change the image size or use lossy compression (*.jpg)! Premiere default is bitmap, which is fine. You will want to copy & rename the extracted images so that the last one still has a number less than 100. It hurts the calibration software to have to run through 2000 non-images to get to frame_2001. Just count from 1, and everything will be fine.
  9. Download the camera calibration toolbox for Matlab from here
  10. Follow the First Calibration Example on this page.
    The calib_gui programÂ’s interface is pictured below. Basically, follow the onscreen instructions/questions and the hints that appear in the images to perform all the tasks leading to “Exit” (starting in the top left and going across). Reprojection error MUST be less than a pixel, and ought to be around 0.1 pixels if you throw out the really bad images and keep around 8 good ones. Reprojection: the corner-finder puts little crosses when it finds something, and the corresponding point from the 3D model of your calib pattern is rendered using the calculated calibration as a circle. These should line up.  

  11. What can I say - it’s the box in the lower left. If you add/suppress it into the list of active images, you can visualize (and sanity-check) where it was relative to the other calibration images. If it’s way off (because, say, it appeared too small in the image), you’ll want to use a different image as the “home”.
  12. Save (a) calibration result (intrinsic parameters; press the lower-right button), (b) 2 pairs of rotation matrix (Rc_ext) and translation vector (Tc_ext) for two 'home' images a text file (Just copy the Matlab result), and submit it to /net/dvfx/DVFX/2006/PS2/your_group_number/ . Remember that we will use time-stamps of files to determine when something was submitted, so if you choose to update the file, give it a different filename.
  13. Submit a text file with intrinsic parameters (printed-out by the toolkit) and extrinsic parameters (also printed-out by the Toolkit) of a 'home' image.
    Intrinsic parameters look like this:
    ------------------------------------
    Calibration results (with uncertainties):
    Focal Length: fc = [ 870.96508 887.33411 ] ± [ 1.29246 1.30538 ]
    Principal point: cc = [ 337.35541 245.93202 ] ± [ 2.56144 1.91218 ]
    Skew: alpha_c = [ 0.00000 ] ± [ 0.00000 ] => angle of pixel axes = 90.00000 ± 0.00000 degrees
    Distortion: kc = [ -0.21301 0.26780 0.00083 0.00217 0.00000 ] ± [ 0.01420 0.14739 0.00048 0.00053 0.00000 ]
    Pixel error: err = [ 0.09065 0.09928 ]
    ------------------------------------
    Note that your pixel error should be less than 0.15 .

horizontal rule

Portions of the GT's CS4480/DVFX Web may be reprinted or adapted for academic nonprofit purposes, providing the source is accurately quoted and duly credited. The CS4480 Web © 1999-2006, College of Computing, Georgia Institute of Technology.
CopyRight Information and Disclaimer.

Last updated: March 08, 2006 01:41:21 PM.