Camera Rig parameters

Our team is acquiring images with multi-camera rigs consisting of dozens of synchronized, non-multispectral cameras that we have rigidly configured and pre-calibrated with precisely-known relative positions and orientations. We are trying to use Pix4Dmapper to do photogrammetric reconstructions from our images, taking advantage of the software’s support for camera rigs. A few related questions:

  1. We are trying to use the XMP image metadata tags to import our camera rig relative extrinsic parameters (position and orientation) into the Pix4D project. However, the Xmp.Camera.RigRelatives tag seems to only support the camera rotation angles. How are we supposed to import the translational XYZ positions for the cameras in our rig?

  2. After the initial import of images from our rig, the rig parameters seem to be saved in Pix4D’s camera model database. Then, subsequent imports of images (even into new projects) ignore the RigRelatives values from the images and use the values from the database instead. How do we allow new extrinsic parameter values from the imported image rig metadata to override any pre-existing camera database values?

  3. In the Edit Camera Rig Model window, why is it necessary to specify a Reference Camera? It would be easiest for us to specify the relative offset positions and angles of our cameras in our own rig coordinate system, which has an origin that does not correspond to the origin of any individual camera in the rig. Of course we can compute all the relative offsets from a particular camera, but it seems simpler if Pix4D would allow the rig relatives to be specified in an arbitrary coordinate system, rather than requiring one camera to be at the origin.

Thanks for any help concerning these questions!

Hello,

I am sorry but we do not officially support the rig add-on.

I will try to answer your questions anyway:

1) We are trying to use the XMP image metadata tags to import our camera rig relative extrinsic parameters (position and orientation) into the Pix4D project. However, the Xmp.Camera.RigRelatives tag seems to only support the camera rotation angles. How are we supposed to import the translational XYZ positions for the cameras in our rig?

The rig Exif tags store only angles, the position has to be typed manually.

2) After the initial import of images from our rig, the rig parameters seem to be saved in Pix4D’s camera model database. Then, subsequent imports of images (even into new projects) ignore the RigRelatives values from the images and use the values from the database instead. How do we allow new extrinsic parameter values from the imported image rig metadata to override any pre-existing camera database values?

I am not sure if I understand. Does it mean that each photo has different angles? or each project?

The software identifies the camera thorugh the EXIF data, if it is the same camera rig but with different parameters, it will not work. That would be like having one single camera for each photo.

What you can do is reoptimize the angles from one project to another (article) but the rotations must be the same all along the same project.

 

  1. In the Edit Camera Rig Model window, why is it necessary to specify a Reference Camera? It would be easiest for us to specify the relative offset positions and angles of our cameras in our own rig coordinate system, which has an origin that does not correspond to the origin of any individual camera in the rig. Of course we can compute all the relative offsets from a particular camera, but it seems simpler if Pix4D would allow the rig relatives to be specified in an arbitrary coordinate system, rather than requiring one camera to be at the origin.

Pix4D requires to define the rig based on one camera, there is no the option that you describe.

 

Thank you very much.