Multi-cameras on same coordinate system

38 visualizaciones (últimos 30 días)
Scott Binks
Scott Binks el 27 de Oct. de 2015
Comentada: Dima Lisin el 16 de Nov. de 2015
Hello folks,
First time poster here. I have a small project that I was hoping to use Matlab for and perhaps someone here can tell me if the computer vision toolbox is all I need, or if I can expect to write some custom code. I have 8 video feeds of a sporting event in my backyard. I have the same model cameras installed all around this small stage area in a circular fashion. I placed a rectangular checkerboard in the center (the day before), and all cameras could see it, and thus I have some calibration feeds. I want to register all of these cameras on a global coordinate system. That is to say, I need a way to know where every camera is relative to every other camera.
So far I've played around with the 'detectCheckerboardPoints' function, and it seems to work fine. But I have no real idea of where to start in terms of doing what I want. From some reading it seems that the computer vision toolbox is good at calibrating a stereo pair, but this is not my task. Is the vision toolbox able to solve my problem? I guess I need to know the rotation and translation of every camera in a global coord. system. Any guidance will be much appreciated.
Thanks,
-Scott

Respuestas (1)

Dima Lisin
Dima Lisin el 29 de Oct. de 2015
Yes, you can use the Computer Vision System Toolbox for this. First, you have to calibrate each of your cameras individually, using the Stereo Camera Calibrator App. Then, since all the cameras can see the same checkerboard, you can use the extrinsics function to compute their respective rotations and translations. Then you can use the cameraMatrix function to get the camera projection matrices relating each camera to the common world coordinate system.
  11 comentarios
Scott Binks
Scott Binks el 15 de Nov. de 2015
Okay, I tried the suggestion. I took 10-15 images from each camera (with some translations and rotations of the checkerboard) and then used the 'estimateCameraParameters' function to get the calibration parameters for each camera.
I then put the checkerboard in the middle of the stage, and took a single shot from all the cameras without moving the checkerboard. I then found the points on each of the common checkerboard images and used the 'extrinsics' function with the calibrated parameters for each camera to get the t, R for each of these "common" frames.
My questions is that I still don't understand what point these rotations and translations are relative too. I know that the translation is -t*R' in world coordinates, and the orientation of the camera is R', but what is all of this relative to? The orientation (R') of the camera has to be relative to something. How can I verify this?
Thanks!
Dima Lisin
Dima Lisin el 16 de Nov. de 2015
It is relative to that checkerboard that you took a picture of with all your cameras. The checkerboard defines the world coordinate system. More specifically, the checkerboard defines the Z=0 plane. The X-axis goes to the right along the longer side of the checkerboard, the Y-axis goes down along the shorter side of the board, and the Z-axis points into the board. -t*R' is the camera's location in these world coordinates, and R' is the cameras orientation in those coordinates.
To verify this, you can plot checkerboard points that you get from the generateCheckerboardPoints function, and then plot the cameras using the plotCamera function.
By the way, it would have been easier to use the cameraCalbrator app than the estimateCameraParameters function for calibration.

Iniciar sesión para comentar.

Categorías

Más información sobre MATLAB Support Package for IP Cameras en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by