top of page
Writer's pictureMarcus Brown

Who touched my cameras?

Updated: Apr 26, 2022

Get a process down so you can check your calibration without having to redo it, and if you touch/think your cameras have been moved, redo it. It doesn’t take that long!


(For this particular post, I’m speaking specifically about video cameras and their use in markerless motion capture. Infrared cameras have their own, and different, requirements.)


I’m asked on a daily basis how often to recalibrate a camera system. And honestly, people seem to fall into two distinct camps: those who never calibrate, and those who always calibrate.


As an aside, I was in a development meeting recently and we were looking at a very complicated 3D triangulation problem, when our senior developer said “it’s their calibration, we literally have video evidence during the collection that they moved this camera”. I found this particularly funny, and for this problem, that explained it. But it speaks to a bigger issue which I want to touch on. How are we so successful with our calibrations in our labs and sites, yet we regularly see issues with other calibrations? Is it a philosophical difference in how we do things, or are we doing something special that we should share?


Honestly, it might be a combination of both. When we calibrate, because we mostly use machine vision cameras, we have to either use an object of known dimensions or a checkerboard to determine the camera locations in 3D. We prefer using the checkerboard process because it's about 10 times more accurate (mm precision versus cm precision), but it’s also automatic, so we don’t have to manually digitize the 3D object to perform the calibration (even though this takes ~2 minutes total). However, in some cases, if the cameras are super far away, or there is glare on the checkerboard, the checkerboard won’t work, so we have to use the object. In practice, we collect both, which means we can always calibrate the volume, and hopefully the checkerboard works. Typically, we only use the checkerboard, because we have done so many of these and have a good handle on the process. I will also calibrate at the end of the collection if I’m concerned that a strong breeze has moved a camera. Remember, only the paranoid survive.


But is all of this necessary? Are we potentially introducing differences by virtue of changing calibrations? If we are sure that the cameras have not been moved, are we actually that sensitive to things like camera temperature that warrants another calibration? Generally, I think the answer is really up to the experimenter, because ultimately they are liable if the calibration fails or a camera has been moved, so really it’s up to them.


The process that we follow is actually quite simple, and in practice, using this process, we are able to calibrate infrequently, but also verify that the calibration results are good (ie. no one has touched my cameras!). For one, whenever we move/touch the cameras, we always recalibrate (If you’re changing the zoom, there is more to it! I’ll write about this in the future). There is no way around that. When you calibrate, if it’s possible, I place a small piece of tape at the origin, and it has to be very small (we call these fiducials). Before collecting, I record a sample trial and load my previous calibration. Because we can project the origin to each camera, we can review that previous calibration. If the origin is on the little piece of tape in each view, I don’t calibrate! It’s really that simple.


Whether you want to redo the calibration all the time or not, reviewing the calibration and making sure that l-frame is in the same spot for each camera is considered best practice, and may prevent frustrating moments when analyzing data. While you don’t have to run the calibration right away, if you haven’t been successful with it in the past, I recommend doing it before taking the cameras down.


If you want more information on our checkerboard calibration, check out our Youtube tutorial here.


150 views0 comments

Comments


Join our mailing list

Thanks for subscribing!

bottom of page