XMP Metadata Explanation

Hi, I understand the XMP workflow allows you to re-use camera positions if your camera set-up is fixed. Upon inspection, the XML files contain a variety of information. I am particularly interested in information that relates to the physical position of the camera in space. Copied below is one of the XML files exported from a scene. Highlighted in bold is information I suspect relates to the camera position. the parameter “Position” most certainly points to the location of the camera expressed as XYZ coordinates. “Rotation”, however, is less easily understood. What is the rotation formalism these 9 floating point numbers adhere to?

What is the purpose of these questions?
I am exploring the possibility of using an industrial robot to place cameras in a known position in space. The program would generate XML files for each photograph based on its known position. This data can then be used to help accelerate the processing time and scaling of models within capturing reality. The XMP workflow could be very powerful when used in this way.

In general, can anyone refer me to some documentation that will help me understand the syntax used in this file? A step-by-step explanation of each line of code would be greatly appreciated.

Many thanks, Arthur

<x:xmpmeta xmlns:x=“adobe:ns:meta/”>
<rdf:RDF xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#”>
<rdf:Description xcr:Version=“2” xcr:PosePrior=“locked” xcr:ComponentId=“{E5E1CBA0-9FE5-409B-A769-3519FFDC6D6C}”
xcr:DistortionModel=“brown3” xcr:FocalLength35mm=“50.6171271967172”
xcr:Skew=“0” xcr:AspectRatio=“1” xcr:PrincipalPointU=“-0.0295316433664267”
xcr:PrincipalPointV=“0.0408802248433926” xcr:CalibrationPrior=“locked”
xcr:CalibrationGroup=“-1” xcr:DistortionGroup=“-1” xcr:InTexturing=“1”
xcr:InColoring=“0” xcr:InMeshing=“1” xmlns:xcr=“http://www.capturingreality.com/ns/xcr/1.1#”>
<xcr:Rotation>0.273188484120257 -0.863844011442024 0.423251197328287 -0.961738759255612 -0.235820558127128 0.139453301538854 -0.020654565828226 -0.445154117424924 -0.895215728553786</xcr:Rotation>
<xcr:Position>3.81031199095338 3.17065426271681 8.83860534037094</xcr:Position>
<xcr:DistortionCoeficients>-0.615118155336521 4.29171637879787 -13.4666968418245 0 0 0</xcr:DistortionCoeficients>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>

Hi Arthur, what an interesting idea. Even though I am not an expert in camera positioning values (only a user) I was looking into the XML files as well today. When doing a google search I found this a bit helpful for me:

http://www.vision.caltech.edu/bouguetj/ … eters.html

But I am no expert. It just gave me a glimpse of understanding.

Thank you for the post. The rotation means 3x3 rotation matrix
R = [ r11 r12 r13;
r21 r22 r23;
r31 r32 r33 ];

The best way how to be sure that you have correct understanding is to write a simple script (in Matlab for example) that will visualize you the cameras using data from xmps.

We will release help to this topic as soon as possible.

Hi Michal,

I need to solve this problem too. Do you already create a help file for this? 

Artur, do you find the solution?