Main Menu

Pix4d tags

Started by Ethan@MAPIR, November 27, 2017, 11:39:06 PM

Previous topic - Next topic

Ethan@MAPIR

Hi there,

I need to write a list of metadata tags that I've gathered from a custom raw format photo so that they can be read by Pix4d. The tags I need to write are in the links below, some are "Standard" but I believe some might need to be overwritten in order to work.

Standard tags = https://support.pix4d.com/hc/en-us/articles/205732299#gsc.tab=0

XMP specification = https://support.pix4d.com/hc/en-us/articles/206434245#gsc.tab=0

Thanks for any help you can offer.

Ethan@MAPIR

Oh and here is the config file I've tried to use with no luck


%Image::ExifTool::UserDefined = {
   
    'Image::ExifTool::XMP::Main' => {
       
        Camera => {
            SubDirectory => {
                TagTable => 'Image::ExifTool::UserDefined::Camera',
               
            },
        },
       
    },
    'Image::ExifTool::EXIF::Main' => {
       
        GPSInfo => {
            SubDirectory => {
                TagTable => 'Image::ExifTool::UserDefined::GPSInfo',
               
            },
        },
        Photo => {
            SubDirectory => {
                TagTable => 'Image::ExifTool::UserDefined::Photo',
               
            },
        },
       
    },
   
};

%Image::ExifTool::UserDefined::Camera = {
    GROUPS => { 0 => 'XMP', 1 => 'XMP-Camera', 2 => 'Camera' },
    NAMESPACE => { 'Camera' => 'http://pix4d.com/camera/1.0/'  },
    WRITABLE => 'string',
    Yaw => { Writable => 'rational', Groups => { 2 => Camera}},
    Pitch => { Writable => 'rational', Groups => { 2 => Camera}},
    Roll => { Writable => 'rational', Groups => { 2 => Camera}},
    CentralWaveLength => { Writable => 'string', Groups => { 2 => Camera}},
    BandName => { Writable => 'string', Groups => { 2 => Camera}},
    RigName => { Writable => 'string', Groups => { 2 => Camera}},
    RigCameraIndex => { Writable => 'string', Groups => { 2 => Camera}},
};

%Image::ExifTool::UserDefined::GPSInfo = {
    GROUPS => { 0 => 'EXIF', 1 => 'EXIF-GPSInfo', 2 => 'GPSInfo' },
    NAMESPACE => { 'GPSInfo' => 'http://pix4d.com/GPSInfo/1.0/'  },
    WRITABLE => 'string',
    GPSLatitude => { Struct => { Hi => { Writable => 'rational'}, Lo => {Writable => 'rational'}}, Groups => { 2 => GPSInfo}},
    GPSLongitudep => { Struct => { Hi => { Writable => 'rational'}, Lo => {Writable => 'rational'}}, Groups => { 2 => GPSInfo}},
    GPSTimeStamp => { Struct => { Hour => { Writable => 'rational'}, Minute => {Writable => 'rational'}, Second => {Writable => 'rational'}}, Groups => { 2 => GPSInfo}},
    GPSAltitude => { Writable => 'rational', Groups => { 2 => GPSInfo}},
    GPSAltituderef => { Writable => 'short', Groups => { 2 => GPSInfo}},
    GPSTimeStampS => { Writable => 'rational', Groups => { 2 => GPSInfo}},
    GPSLatitudeRef => { Writable => 'string', Groups => { 2 => GPSInfo}},
    GPSLongitudeRef => { Writable => 'string', Groups => { 2 => GPSInfo}},
    GPSLeapSeconds => { Writable => 'short', Groups => { 2 => GPSInfo}},
    GPSTimeFormat => { Writable => 'short', Groups => { 2 => GPSInfo}},
    GPSFixStatus => { Writable => 'short', Groups => { 2 => GPSInfo}},
};

%Image::ExifTool::UserDefined::Photo = {
    GROUPS => { 0 => 'EXIF', 1 => 'EXIF-Photo', 2 => 'Photo' },
    NAMESPACE => { 'Photo' => 'http://pix4d.com/Photo/1.0/'  },
    WRITABLE => 'string',
    DateTimeOriginal => { Writable => 'string', Groups => { 2 => Photo}},
    SubSecTimeOriginal => { Writable => 'short', Groups => { 2 => Photo}},
    ExposureTime => { Writable => 'rational', Groups => { 2 => Photo}},
    ExposureMode => { Writable => 'boolean', Groups => { 2 => Photo}},
    ISOSpeedRatings => { Writable => 'short', Groups => { 2 => Photo}},
    LensModel => { Writable => 'string', Groups => { 2 => Photo}},
};

Phil Harvey

Hi Ethan,

These EXIF tags are standard EXIF and as such they don't require user-defined tags.  To write these in ExifTool, all you need to do is determine the correct tag name.  See the EXIF Tags documentation for a complete list.

The XMP.Camera tags look to be Pix4d-specific, and as far as I can tell you are defining these correctly (but you can drop the "Groups => { 2 => Camera}" because this is already the default as specified by the GROUPS entry in your table).

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

Ethan@MAPIR

Hi Phil,

I've had some luck finding the standard tags, but I have found a warning

QuoteWarning: Can't convert ExifIFD:ExposureMode (not in PrintConv)

I am passing it a value of 1 through a subprocess call, but that call can only pass things as string objects from what I can determine, I don't know why it works for all the values except Exposure Mode

StarGeek

Take a look at the EXIF tag page for the values of ExposureMode.  The value of 1 would normally be set as "Manual". 

To set the raw value, you can add a hashtag to the end of the tag name:
exiftool -ExposureMode#=1 FileOrDir
* Did you read FAQ #3 and use the command listed there?
* Please use the Code button for exiftool code/output.
 
* Please include your OS, Exiftool version, and type of file you're processing (MP4, JPG, etc).

Ethan@MAPIR

Thanks Stargeek.

So, I got all the tags to play nice, except for now the Yaw, Pitch, and Roll are no longer being read by Pix4d. The xmp specification says they need to be in XMP.Camera and that they are rational numbers.

Has anyone gotten these tags to work?

Regards,

Phil Harvey

The specification you gave is not sufficient to know how these tags should be written.  I need either an example XMP containing these tags, or the property name, namespace prefix and namespace URI for the tags.  XMP.Camera is their local way of addressing the tags, and is not helpful.  If you can use Pix4d to write these tags then you can see how they should be written.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

Ethan@MAPIR

#7
Quote from: Phil Harvey on December 05, 2017, 07:06:52 AM
The specification you gave is not sufficient to know how these tags should be written.  I need either an example XMP containing these tags, or the property name, namespace prefix and namespace URI for the tags.  XMP.Camera is their local way of addressing the tags, and is not helpful.  If you can use Pix4d to write these tags then you can see how they should be written.

- Phil
Hi Phil

I found an image that has the data I need.

Below is the data:

[ExifTool]      ExifTool Version Number         : 10.63
[System]        File Name                       : IMG_160729_071428_0014_RGB.JPG
[System]        Directory                       : D:/Exifphotos
[System]        File Size                       : 2.5 MB
[System]        File Modification Date/Time     : 2017:12:07 18:59:50-08:00
[System]        File Access Date/Time           : 2017:12:07 15:34:50-08:00
[System]        File Creation Date/Time         : 2017:12:07 15:34:50-08:00
[System]        File Permissions                : rw-rw-rw-
[File]          File Type                       : JPEG
[File]          File Type Extension             : jpg
[File]          MIME Type                       : image/jpeg
[File]          Exif Byte Order                 : Big-endian (Motorola, MM)
[File]          Image Width                     : 4608
[File]          Image Height                    : 3456
[File]          Encoding Process                : Baseline DCT, Huffman coding
[File]          Bits Per Sample                 : 8
[File]          Color Components                : 3
[File]          Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
[IFD0]          Compression                     : JPEG
[IFD0]          Photometric Interpretation      : YCbCr
[IFD0]          Make                            : Parrot
[IFD0]          Camera Model Name               : Sequoia
[IFD0]          Orientation                     : Horizontal (normal)
[IFD0]          X Resolution                    : 72
[IFD0]          Y Resolution                    : 72
[IFD0]          Resolution Unit                 : inches
[IFD0]          Software                        : v1.1.0-rc1
[IFD0]          Modify Date                     : 2016:07:29 07:14:28
[IFD0]          Y Cb Cr Positioning             : Centered
[IFD0]          Image Number                    : 14
[IFD0]          Camera Serial Number            : PI040378AA6C000267
[IFD0]          Original Raw File Name          : IMG_160729_071428_0014_RGB.JPG
[ExifIFD]       Exposure Time                   : 1/830
[ExifIFD]       F Number                        : 2.3
[ExifIFD]       ISO                             : 100
[ExifIFD]       Exif Version                    : 0210
[ExifIFD]       Date/Time Original              : 2016:07:29 07:14:28
[ExifIFD]       Create Date                     : 1970:01:01 00:03:49
[ExifIFD]       Components Configuration        : Y, Cb, Cr, -
[ExifIFD]       Shutter Speed Value             : 1/830
[ExifIFD]       Aperture Value                  : 2.3
[ExifIFD]       Max Aperture Value              : 2.3
[ExifIFD]       Focal Length                    : 4.9 mm
[ExifIFD]       Image Number                    : 14
[ExifIFD]       Sub Sec Time                    : 028981
[ExifIFD]       Sub Sec Time Original           : 028981
[ExifIFD]       Sub Sec Time Digitized          : 540535
[ExifIFD]       Flashpix Version                : 0100
[ExifIFD]       Color Space                     : Uncalibrated
[ExifIFD]       Exif Image Width                : 4608
[ExifIFD]       Exif Image Height               : 3456
[ExifIFD]       Focal Plane X Resolution        : 746.2686793
[ExifIFD]       Focal Plane Y Resolution        : 746.2686793
[ExifIFD]       Focal Plane Resolution Unit     : mm
[ExifIFD]       Exposure Mode                   : Auto
[ExifIFD]       White Balance                   : Auto
[ExifIFD]       Focal Length In 35mm Format     : 28 mm
[ExifIFD]       Image Unique ID                 : 76A06F4F3479E4D0651BFC196405B495
[ExifIFD]       Serial Number                   : PI040378AA6C000267
[GPS]           GPS Version ID                  : 2.2.0.0
[GPS]           GPS Latitude Ref                : North
[GPS]           GPS Latitude                    : 46 deg 31' 24.15"
[GPS]           GPS Longitude Ref               : East
[GPS]           GPS Longitude                   : 6 deg 33' 4.95"
[GPS]           GPS Altitude Ref                : Above Sea Level
[GPS]           GPS Altitude                    : 505.0581808 m
[GPS]           GPS Time Stamp                  : 07:14:26.802
[GPS]           GPS Status                      : Measurement Active
[GPS]           GPS Speed Ref                   : km/h
[GPS]           GPS Speed                       : 40.25337621
[GPS]           GPS Map Datum                   : WGS-84
[GPS]           GPS Date Stamp                  : 2016:07:29
[XMP-Camera]    Rig Name                        : Sequoia
[XMP-Camera]    Yaw                             : -69.915070
[XMP-Camera]    Pitch                           : 5.747519
[XMP-Camera]    Roll                            : -6.973208
[XMP-Camera]    IMU Sample Size                 : 185
[XMP-Camera]    IMU Time Offset                 : 10623074
[XMP-Camera]    Line Readout Time               : 47500
[XMP-Camera]    IMU Frequency                   : 1000
[XMP-Camera]    Principal Point                 : 3.005977,2.245134
[XMP-Camera]    Model Type                      : perspective
[XMP-Camera]    Perspective Focal Length        : 4.507643
[XMP-Camera]    Perspective Distortion          : 0.209457683,-0.354049203,0.265381076,-0.004126354,-0.001986669
[XMP-Camera]    IMU Linear Velocity             : -2.212102,-10.960538,1.196878
[XMP-Camera]    GPSXY Accuracy                  : 3.015103
[XMP-Camera]    GPSZ Accuracy                   : 4.127000
[XMP-Camera]    Flight UUID                     : 26D9D225ABC80F206709E65F2ABCEAFD
[XMP-Camera]    Band Name                       : Red, Green, Blue
[XMP-Camera]    IMU Angular Velocity            : .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.
[Composite]     Aperture                        : 2.3
[Composite]     GPS Altitude                    : 505 m Above Sea Level
[Composite]     GPS Date/Time                   : 2016:07:29 07:14:26.80199981Z
[Composite]     GPS Latitude                    : 46 deg 31' 24.15" N
[Composite]     GPS Longitude                   : 6 deg 33' 4.95" E
[Composite]     GPS Position                    : 46 deg 31' 24.15" N, 6 deg 33' 4.95" E
[Composite]     Image Size                      : 4608x3456
[Composite]     Megapixels                      : 15.9
[Composite]     Scale Factor To 35 mm Equivalent: 5.7
[Composite]     Shutter Speed                   : 1/830
[Composite]     Create Date                     : 1970:01:01 00:03:49.540535
[Composite]     Date/Time Original              : 2016:07:29 07:14:28.028981
[Composite]     Modify Date                     : 2016:07:29 07:14:28.028981
[Composite]     Circle Of Confusion             : 0.005 mm
[Composite]     Field Of View                   : 65.5 deg
[Composite]     Focal Length                    : 4.9 mm (35 mm equivalent: 28.0 mm)
[Composite]     Hyperfocal Distance             : 1.98 m
[Composite]     Light Value                     : 12.1

Phil Harvey

Attached is a config file that should do what you want.  You were very close with your XMP definitions, and according to the pix4d documentation, these should have worked.  The only thing I changed with the yaw/pitch/roll is to change them to "real" instead of "rational", but the pix4d doc says that rational should be acceptable.

The IMUAngularVelocity is interesting, and is Base64-encoded binary data which seems to be a repeating list of 24-byte structures.  I don't know what the first 8 bytes are, but the next 12 seem to be 4 floating point values:

      offset        char    hex       long    short1 short2    float      double      date
-----------------   ---- -------- ----------- ------ ------ ---------- ----------- ----------
       0 00000000   .... 9d80ab0d   229343389 -32611   3499  1.057e-30  1.133e-315 1977-04-08 (0%)
       4 00000004   .... 00000000           0      0      0          0    7.93e-16 1970-01-01 (0%)
       8 00000008   ...< bd91cc3c  1020039613 -28227  15564    0.02497  -9.457e-14 2002-04-29 (0%)
      12 0000000c   ..:. b39e3abd -1120231757 -24909 -17094   -0.04556     5.6e-16 1934-07-03 (0%)
      16 00000010   r-.< 722dc43c  1019489650  11634  15556    0.02395  2.626e-314 2002-04-22 (0%)
      20 00000014   .... 01000000           1      1      0  1.401e-45   8.06e-243 1970-01-01 (0%)
      24 00000018   .... 8584ab0d   229344389 -31611   3499  1.057e-30  1.133e-315 1977-04-08 (1%)
      28 0000001c   .... 00000000           0      0      0          0  -4.252e-13 1970-01-01 (1%)
      32 00000020   ..]. e6ea5dbd -1117918490  -5402 -17059   -0.05418    -1.4e-12 1934-07-30 (1%)
      36 00000024   ..x. d79f78bd -1116168233 -24617 -17032    -0.0607   9.573e-20 1934-08-19 (1%)
      40 00000028   xA.; 7841fc3b  1006387576  16760  15356   0.007698  2.619e-314 2001-11-22 (1%)
      44 0000002c   .... 01000000           1      1      0  1.401e-45  8.065e-243 1970-01-01 (1%)
      48 00000030   m... 6d88ab0d   229345389 -30611   3499  1.057e-30  1.133e-315 1977-04-08 (1%)
      52 00000034   .... 00000000           0      0      0          0  -4.252e-13 1970-01-01 (1%)
      56 00000038   ..]. e6ea5dbd -1117918490  -5402 -17059   -0.05418  -1.148e-12 1934-07-30 (1%)
      60 0000003c   .2t. 0b3274bd -1116458485  12811 -17036   -0.05962   2.134e-34 1934-08-16 (1%)
      64 00000040   ...8 00baf138   955365888 -17920  14577  0.0001153  2.594e-314 2000-04-10 (1%)
      68 00000044   .... 01000000           1      1      0  1.401e-45  8.069e-243 1970-01-01 (2%)
      72 00000048   U... 558cab0d   229346389 -29611   3499  1.057e-30  1.133e-315 1977-04-08 (2%)
      76 0000004c   .... 00000000           0      0      0          0   5.418e-17 1970-01-01 (2%)
      80 00000050   .;.< d63b8f3c  1016019926  15318  15503    0.01748  -9.173e-12 2002-03-13 (2%)
      84 00000054   .,.. 162ca4bd -1113314282  11286 -16988   -0.08016   8.259e-17 1934-09-21 (2%)
      88 00000058   l..< 6cce973c  1016581740 -12692  15511    0.01853  2.624e-314 2002-03-19 (2%)
      92 0000005c   .... 01000000           1      1      0  1.401e-45  8.074e-243 1970-01-01 (2%)


- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

vbnhu

#9
Just out of interest, I was checking the speed of exif and xmp encoding to use pictures in pix4d:

dos('C:\Temp\exiftool -config "C:\Temp\pix4d.config" -GPSLatitude -GPSLongitude -GPSAltitude -GPSLatitudeRef -GPSLongitudeRef -GPSAltitudeRef -csv="C:\Temp\pics_pos.csv" -overwrite_original C:\Temp\Flight_test_data\20191017_F2v2\pic')

takes 11.6 sec

dos('C:\Temp\exiftool -config "C:\Temp\pix4d.config" -Xmp-Camera:Yaw -Xmp-Camera:Pitch -Xmp-Camera:Roll  -csv="C:\Temp\pics_rpy.csv" -overwrite_original C:\Temp\Flight_test_data\20191017_F2v2\pic')

takes 12.04 sec

dos('C:\Temp\exiftool -config "C:\Temp\pix4d.config" -GPSLatitude -GPSLongitude -GPSAltitude -GPSLatitudeRef -GPSLongitudeRef -GPSAltitudeRef -Xmp-Camera:Yaw -Xmp-Camera:Pitch -Xmp-Camera:Roll  -csv="C:\Temp\pics_pos_rpy_no2.csv" -overwrite_original -fast C:\Temp\Flight_test_data\20191017_F2v2\pic')

while surprisingly this takes 30.09 sec (having the -fast option) and 23.22 sec without the fast option.

I was just interested about the reason why combined exif+xmp takes the same time or longer than separate exif followed by xmp encoding. Am I missing something obvious?

Phil Harvey

This command doesn't make a lot of sense:

QuoteC:\Temp\exiftool -config "C:\Temp\pix4d.config" -GPSLatitude -GPSLongitude -GPSAltitude -GPSLatitudeRef -GPSLongitudeRef -GPSAltitudeRef -Xmp-Camera:Yaw -Xmp-Camera:Pitch -Xmp-Camera:Roll  -csv="C:\Temp\pics_pos_rpy_no2.csv" -overwrite_original -fast C:\Temp\Flight_test_data\20191017_F2v2\pic

it is equivalent to this:

C:\Temp\exiftool -config "C:\Temp\pix4d.config" -csv="C:\Temp\pics_pos_rpy_no2.csv" -overwrite_original C:\Temp\Flight_test_data\20191017_F2v2\pic

(if you run on the command line, you'll see a message: "Ignored superfluous tag names or invalid options: -GPSLatitude ..." indicating that the tag name arguments don't mean anything)

Also note that the -fast option should have no effect when writing, so I don't understand your observations either.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

vbnhu

Dear Phil!
Thanks for the quick reply and for correcting my mistake (I used some code snippets from http://help.propelleraero.com/en/articles/880862-batch-geotagging-photos-with-exiftool and assumed this is the right format).

Let me rephrase the question a bit:
I removed the unnecessary part of the code and run the 3 experiments once again:
1: batch exif geotag 161 pictures with the lat,lon,alt, latref.... tags - takes t1 =  10.5170 sec
2: batch embed xmp tags for the same 161 pictures (roll, pitch, yaw) - takes t2 = 11.8422 sec

Now I want to combine the two into one. If I have to guess if I combine the two into one command, exiftool has to open each file only once so I would assume EXIF+XMP tagging would take something like 12.5 sec. On the other hand to my surprise it took t3 = 25.0048 sec, which is larger than t1+t2

I call the batch script from Matlab and I repeated the experiment a few times, but I got the same answer.

Phil Harvey

There must be something else going on here because the time should be about the same.  Are  you sure you aren't seeing differences from disk caching or something else?  Either that or there is something I'm not seeing in your combined command (what is that now, exactly, btw?).

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).