Camera orientation from XMP tags not imported SenseFly - SODA 3D

Hi guys,

on our drones, we are using camera from SenseFly - SODA 3D, it has pretty good IMU, and from what I can tell, camera orientations (pitch, roll, yaw) and also GPS accuracy are not loaded from JPG’s XMP section. I’ve also tried exporting XMP section using exiftool, but it was not added when inspecting Images in Prior pose in RC.

What can we do to utilize this data? I expect that it should help with alignment if I’m not wrong.

Thank you for advices :slight_smile:

Hi DroneVision,

are you able to find these data somewhere?

From this data you can create a flight log and this flightlog use in the application.

Yes, you are right, this should help during alignment.

Thank you for reply Ondrej,

Yes, they are in XMP when I look via exiftool (included bellow)

I can script export from exiftool to flightlog format, but then I will not be able to import accuracy, but it would be great if RC will be able to read it all someday :slight_smile:

ExifToolVersion = 11.88
FileName = 0241_0529.JPG
Directory = .
FileSize = 9002357
FileModifyDate = 1617447846
FileAccessDate = 1624240204
FileInodeChangeDate = 1621787038
FilePermissions = 33279
FileType = JPEG
FileTypeExtension = JPG
MIMEType = image/jpeg
JPEG APP1 (13794 bytes):
ExifByteOrder = II

  • [IFD0 directory with 12 entries]
    | 0) ProcessingSoftware = eMotion 3.18.0
    | 1) Make = senseFly
    | 2) Model = S.O.D.A.
    | 3) Orientation = 3
    | 4) XResolution = 72 (72/1)
    | 5) YResolution = 72 (72/1)
    | 6) ResolutionUnit = 2
    | 7) Software = 1.3.0
    | 8) ExifOffset (SubDirectory) –>
    | + [ExifIFD directory with 21 entries]
    | | 0) ExposureTime = 0.001 (10/10000)
    | | 1) FNumber = 2.8 (28/10)
    | | 2) ExposureProgram = 4
    | | 3) ISO = 320
    | | 4) DateTimeOriginal = 2021:03:29 08:32:16
    | | 5) ApertureValue = 3 (300/100)
    | | 6) ExposureCompensation = 0 (0/10)
    | | 7) MaxApertureValue = 2.97 (297/100)
    | | 8) SubjectDistance = 4294967.295 (4294967295/1000)
    | | 9) FocalLength = 10.6 (106/10)
    | | 10) MakerNoteUnknown (SubDirectory) –>
    | | + [MakerNotes directory with 1 entries]
    | | | 0) Unknown_0x0f00 = .w.160#6b#.A@%SFK^EBMK…N.p…~…[snip]
    | | 11) SubSecTimeOriginal = 00
    | | 12) ExifImageWidth = 5472
    | | 13) ExifImageHeight = 3648
    | | 14) FocalPlaneXResolution = 4167 (4167/1)
    | | 15) FocalPlaneYResolution = 4167 (4167/1)
    | | 16) FocalPlaneResolutionUnit = 3
    | | 17) WhiteBalance = 1
    | | 18) FocalLengthIn35mmFormat = 28
    | | 19) SerialNumber = xxxxx
    | | 20) LensModel =
    | 9) GPSInfo (SubDirectory) –>
    | + [GPS directory with 11 entries]
    | | 0) GPSVersionID = 2 3 0 0
    | | 1) GPSLatitudeRef = N
    | | 2) GPSLatitude = 49 10 41.732338 (49/1 10/1 41732338/1000000)
    | | 3) GPSLongitudeRef = E
    | | 4) GPSLongitude = 20 27 23.418434 (20/1 27/1 23418434/1000000)
    | | 5) GPSAltitudeRef = 0
    | | 6) GPSAltitude = 783.2817 (7832817/10000)
    | | 7) GPSTimeStamp = 8 32 16.391 (8/1 32/1 16391/1000)
    | | 8) GPSStatus = A
    | | 9) GPSMapDatum = WGS-84
    | | 10) GPSDateStamp = 2021:03:29
    | 10) UniqueCameraModel = senseFly S.O.D.A.
    | 11) CameraSerialNumber = xxxxx
  • [IFD1 directory with 6 entries]
    | 0) XResolution = 72 (72/1)
    | 1) YResolution = 72 (72/1)
    | 2) ResolutionUnit = 2
    | 3) ThumbnailOffset = 9918
    | 4) ThumbnailLength = 3869
    | 5) ImageNumber = 0
    JPEG APP1 (2916 bytes):
  • [XMP directory, 2887 bytes]
    | XMPToolkit = XMP Core 4.4.0-Exiv2
    | [adding XMP-sensefly:CamId]
    | CamId = 30
    | [adding XMP-Camera:IMULinearVelocity]
    | IMULinearVelocity = -2e+10,-2e+10,-2e+10
    | [adding XMP-Camera:Pitch]
    | Pitch = -10.3281
    | [adding XMP-Camera:Roll]
    | Roll = 33.3873
    | [adding XMP-Camera:Yaw]
    | Yaw = 106.863
    | [adding XMP-Camera:GPSXYAccuracy]
    | GPSXYAccuracy = 0.039782
    | [adding XMP-Camera:GPSZAccuracy]
    | GPSZAccuracy = 0.0482028
    | [adding XMP-Camera:IMUPitchAccuracy]
    | IMUPitchAccuracy = 2
    | [adding XMP-Camera:IMURollAccuracy]
    | IMURollAccuracy = 2
    | [adding XMP-Camera:IMUYawAccuracy]
    | IMUYawAccuracy = 4
    | [adding XMP-Platform:FlightUUID]
    | FlightUUID = xxxxx
    | [adding XMP-Platform:Manufacturer]
    | Manufacturer = senseFly
    | [adding XMP-Platform:Model]
    | Model = eBee X
    | [adding XMP-Platform:SerialNumber]
    | SerialNumber = xxxxx
    | [adding XMP-Platform:SwVersion]
    | SwVersion = 3.18.0 274
    JPEG DQT (195 bytes):
    JPEG DHT (416 bytes):
    JPEG SOF0 (15 bytes):
    ImageWidth = 5472
    ImageHeight = 3648
    EncodingProcess = 0
    BitsPerSample = 8
    ColorComponents = 3
    YCbCrSubSampling = 2 1
    JPEG SOS

Hi, there are also options with accuracy in import flight log (for example first one on the image).