gkiavash / Master-Thesis-Structure-from-Motion

1 stars 1 forks source link

Test meta-data (GPS, IMU, etc...) extraction from the Go-Pro sample video #3

Open gkiavash opened 1 year ago

gkiavash commented 1 year ago
gkiavash commented 1 year ago

https://github.com/gopro/gpmf-parser

gkiavash commented 1 year ago

The command below extracts metadata from .mpf files:

./gpmfdemo <mp4 path> -a -fGPS5

An example:

./gpmfdemo /home/gkiavash/Downloads/sfm_projects/datasets/street_2/GH020030.MP4 -a -fGPS5 > /home/gkiavash/gpmf.log

Sample extracted GPMF data:

VIDEO FRAMERATE:
  59.940 with 31860 frames
PAYLOAD TIME:
  0.000 to 1.001 seconds
SCALED DATA:
  ACCL 5.674m/s², -2.530m/s², -6.084m/s², 
  ACCL 7.796m/s², 3.125m/s², -5.923m/s², 
  ACCL 9.290m/s², 1.024m/s², -0.868m/s², 
  ACCL 10.211m/s², -3.530m/s², 6.017m/s², 
  ACCL 6.317m/s², -1.393m/s², 8.734m/s², 
  ACCL 7.892m/s², 0.703m/s², -0.247m/s², 
  ACCL 14.484m/s², 1.002m/s², -2.175m/s², 
  ACCL 16.067m/s², 1.626m/s², 1.348m/s², 
  ACCL 13.866m/s², 1.700m/s², 8.832m/s², 
  ACCL 10.163m/s², -3.038m/s², 14.993m/s², 
  ACCL 13.724m/s², -10.293m/s², 4.604m/s², 
...
  UNIF 0.458, 
  UNIF 0.458, 
  UNIF 0.486, 
  UNIF 0.486, 
  UNIF 0.515, 
  GPS5 45.406deg, 11.877deg, 19.839m, 2.418m/s, 2.450m/s, 
  GPS5 45.406deg, 11.877deg, 19.831m, 2.432m/s, 2.420m/s, 
  GPS5 45.406deg, 11.877deg, 19.816m, 2.489m/s, 2.430m/s, 
  GPS5 45.406deg, 11.877deg, 19.811m, 2.501m/s, 2.490m/s, 
  GPS5 45.406deg, 11.877deg, 19.807m, 2.501m/s, 2.500m/s, 
  GPS5 45.406deg, 11.877deg, 19.821m, 2.495m/s, 2.500m/s, 
  GPS5 45.406deg, 11.877deg, 19.828m, 2.503m/s, 2.500m/s, 
  GPS5 45.406deg, 11.877deg, 19.830m, 2.505m/s, 2.500m/s, 
  GPS5 45.406deg, 11.877deg, 19.825m, 2.520m/s, 2.510m/s, 
  GPS5 45.406deg, 11.877deg, 19.819m, 2.493m/s, 2.520m/s, 
  GPS5 45.406deg, 11.877deg, 19.822m, 2.472m/s, 2.490m/s, 
  GPS5 45.406deg, 11.877deg, 19.820m, 2.471m/s, 2.470m/s, 
  GPS5 45.406deg, 11.877deg, 19.822m, 2.494m/s, 2.470m/s, 
  GPS5 45.406deg, 11.877deg, 19.790m, 2.448m/s, 2.490m/s, 
  GPS5 45.406deg, 11.877deg, 19.775m, 2.444m/s, 2.450m/s, 
  GPS5 45.406deg, 11.877deg, 19.775m, 2.434m/s, 2.440m/s, 
  GPS5 45.406deg, 11.877deg, 19.759m, 2.404m/s, 2.430m/s, 
  GPS5 45.406deg, 11.877deg, 19.763m, 2.412m/s, 2.400m/s, 
  CORI -0.426, -0.091, -0.889, 0.141, 
  CORI -0.427, -0.093, -0.888, 0.141, 
  CORI -0.427, -0.094, -0.888, 0.142, 
  CORI -0.428, -0.093, -0.887, 0.145, 
  CORI -0.427, -0.095, -0.888, 0.145, 
  CORI -0.427, -0.095, -0.887, 0.149, 
  CORI -0.426, -0.097, -0.887, 0.149, 
  CORI -0.424, -0.099, -0.888, 0.147, 
  CORI -0.423, -0.098, -0.889, 0.147, 
  CORI -0.423, -0.095, -0.889, 0.149, 
...

  LSKP -2.000, 
  LSKP -2.000, 
  LSKP -2.000, 
  LSKP -2.000, 
  LSKP -2.000, 
  LSKP -2.000, 
  LSKP -2.000, 
  LSKP -2.000, 
  LSKP -2.000, 
  LSKP -2.000, 
  LSKP -2.000, 
  LSKP -2.000, 
  LSKP -2.000, 
  LSKP -2.000, 
  LSKP -2.000, 
COMPUTED SAMPLERATES:
  ACCL sampling rate = 198.286471Hz (time -0.016807 to 531.512145)",
  GYRO sampling rate = 198.286471Hz (time -0.016807 to 531.512145)",
  SHUT sampling rate = 29.970030Hz (time 0.000000 to 531.531000)",
  WBAL sampling rate = 9.990010Hz (time 0.000000 to 531.531000)",
  WRGB sampling rate = 9.990010Hz (time 0.000000 to 531.531000)",
  ISOE sampling rate = 29.970030Hz (time 0.000000 to 531.531000)",
  UNIF sampling rate = 9.990010Hz (time 0.000000 to 531.531000)",
  FACE sampling rate = 9.990010Hz (time 0.000000 to 531.531000)",
  GPS5 sampling rate = 18.171094Hz (time -0.029451 to 531.529069)",
  CORI sampling rate = 59.940060Hz (time -0.016684 to 531.514316)",
  IORI sampling rate = 59.940060Hz (time -0.016684 to 531.514316)",
  GRAV sampling rate = 59.940060Hz (time -0.016684 to 531.514316)",
  WNDM sampling rate = 10.000000Hz (time -0.031000 to 531.469000)",
  MWET sampling rate = 10.000000Hz (time -0.031000 to 531.469000)",
  AALP sampling rate = 10.000000Hz (time -0.031000 to 531.469000)",
  MSKP sampling rate = 59.940060Hz (time -0.016684 to 531.514316)",
  LSKP sampling rate = 29.970030Hz (time 0.000000 to 531.531000)",

As you can see GPS sampling rate is 18. It means there are 18 position data in one second.

However, after reviewing all GPS data for a long video, I realized that the coordinates are updated every 2 or 3 seconds which is not ideal.

In SFM, the algorithm finds the coordinates of the camera for each frame. If we want to use GPS data as an initial value in SFM, 40 to 60 frames might have the same initial coordinates which doesn't help the algorithm.

Moreover, GPS data from GPMF metadata has an accuracy of three-tenth of a decimal. I checked this error in Google Maps, the error could be 10 meters. While SFM has an error of less than a centimeter.

Sample GPS data of the first 5 seconds:


VIDEO FRAMERATE:
  59.940 with 31860 frames
PAYLOAD TIME:
  0.000 to 1.001 seconds
SCALED DATA:
  GPS5 45.406deg, 11.877deg, 19.839m, 2.418m/s, 2.450m/s, 
  GPS5 45.406deg, 11.877deg, 19.831m, 2.432m/s, 2.420m/s, 
  GPS5 45.406deg, 11.877deg, 19.816m, 2.489m/s, 2.430m/s, 
  GPS5 45.406deg, 11.877deg, 19.811m, 2.501m/s, 2.490m/s, 
  GPS5 45.406deg, 11.877deg, 19.807m, 2.501m/s, 2.500m/s, 
  GPS5 45.406deg, 11.877deg, 19.821m, 2.495m/s, 2.500m/s, 
  GPS5 45.406deg, 11.877deg, 19.828m, 2.503m/s, 2.500m/s, 
  GPS5 45.406deg, 11.877deg, 19.830m, 2.505m/s, 2.500m/s, 
  GPS5 45.406deg, 11.877deg, 19.825m, 2.520m/s, 2.510m/s, 
  GPS5 45.406deg, 11.877deg, 19.819m, 2.493m/s, 2.520m/s, 
  GPS5 45.406deg, 11.877deg, 19.822m, 2.472m/s, 2.490m/s, 
  GPS5 45.406deg, 11.877deg, 19.820m, 2.471m/s, 2.470m/s, 
  GPS5 45.406deg, 11.877deg, 19.822m, 2.494m/s, 2.470m/s, 
  GPS5 45.406deg, 11.877deg, 19.790m, 2.448m/s, 2.490m/s, 
  GPS5 45.406deg, 11.877deg, 19.775m, 2.444m/s, 2.450m/s, 
  GPS5 45.406deg, 11.877deg, 19.775m, 2.434m/s, 2.440m/s, 
  GPS5 45.406deg, 11.877deg, 19.759m, 2.404m/s, 2.430m/s, 
  GPS5 45.406deg, 11.877deg, 19.763m, 2.412m/s, 2.400m/s, 
PAYLOAD TIME:
  1.001 to 2.002 seconds
SCALED DATA:
  GPS5 45.406deg, 11.877deg, 19.763m, 2.411m/s, 2.410m/s, 
  GPS5 45.406deg, 11.877deg, 19.751m, 2.412m/s, 2.410m/s, 
  GPS5 45.406deg, 11.877deg, 19.767m, 2.443m/s, 2.410m/s, 
  GPS5 45.406deg, 11.877deg, 19.749m, 2.455m/s, 2.440m/s, 
  GPS5 45.406deg, 11.877deg, 19.757m, 2.455m/s, 2.460m/s, 
  GPS5 45.406deg, 11.877deg, 19.780m, 2.436m/s, 2.460m/s, 
  GPS5 45.406deg, 11.877deg, 19.796m, 2.448m/s, 2.440m/s, 
  GPS5 45.406deg, 11.877deg, 19.770m, 2.426m/s, 2.450m/s, 
  GPS5 45.406deg, 11.877deg, 19.788m, 2.441m/s, 2.430m/s, 
  GPS5 45.406deg, 11.877deg, 19.794m, 2.462m/s, 2.440m/s, 
  GPS5 45.406deg, 11.877deg, 19.815m, 2.480m/s, 2.460m/s, 
  GPS5 45.406deg, 11.877deg, 19.837m, 2.504m/s, 2.480m/s, 
  GPS5 45.406deg, 11.877deg, 19.859m, 2.523m/s, 2.500m/s, 
  GPS5 45.406deg, 11.877deg, 19.882m, 2.473m/s, 2.520m/s, 
  GPS5 45.406deg, 11.877deg, 19.898m, 2.482m/s, 2.470m/s, 
  GPS5 45.406deg, 11.877deg, 19.899m, 2.484m/s, 2.480m/s, 
  GPS5 45.406deg, 11.877deg, 19.905m, 2.496m/s, 2.480m/s, 
  GPS5 45.406deg, 11.877deg, 19.913m, 2.490m/s, 2.500m/s, 
  GPS5 45.406deg, 11.877deg, 19.915m, 2.517m/s, 2.490m/s, 
PAYLOAD TIME:
  2.002 to 3.003 seconds
SCALED DATA:
  GPS5 45.406deg, 11.877deg, 19.917m, 2.539m/s, 2.520m/s, 
  GPS5 45.407deg, 11.877deg, 19.918m, 2.538m/s, 2.540m/s, 
  GPS5 45.407deg, 11.877deg, 19.925m, 2.514m/s, 2.540m/s, 
  GPS5 45.407deg, 11.877deg, 19.923m, 2.497m/s, 2.510m/s, 
  GPS5 45.407deg, 11.877deg, 19.921m, 2.511m/s, 2.500m/s, 
  GPS5 45.407deg, 11.877deg, 19.926m, 2.504m/s, 2.510m/s, 
  GPS5 45.407deg, 11.877deg, 19.931m, 2.494m/s, 2.500m/s, 
  GPS5 45.407deg, 11.877deg, 19.936m, 2.488m/s, 2.490m/s, 
  GPS5 45.407deg, 11.877deg, 19.940m, 2.486m/s, 2.490m/s, 
  GPS5 45.407deg, 11.877deg, 19.939m, 2.489m/s, 2.490m/s, 
  GPS5 45.407deg, 11.877deg, 19.935m, 2.508m/s, 2.490m/s, 
  GPS5 45.407deg, 11.877deg, 19.939m, 2.499m/s, 2.510m/s, 
  GPS5 45.407deg, 11.877deg, 19.943m, 2.501m/s, 2.500m/s, 
  GPS5 45.407deg, 11.877deg, 19.948m, 2.493m/s, 2.500m/s, 
  GPS5 45.407deg, 11.877deg, 19.950m, 2.473m/s, 2.490m/s, 
  GPS5 45.407deg, 11.877deg, 19.948m, 2.475m/s, 2.470m/s, 
  GPS5 45.407deg, 11.877deg, 19.942m, 2.499m/s, 2.480m/s, 
  GPS5 45.407deg, 11.877deg, 19.938m, 2.513m/s, 2.500m/s, 
PAYLOAD TIME:
  3.003 to 4.004 seconds
SCALED DATA:
  GPS5 45.407deg, 11.877deg, 19.938m, 2.493m/s, 2.510m/s, 
  GPS5 45.407deg, 11.877deg, 19.937m, 2.498m/s, 2.490m/s, 
  GPS5 45.407deg, 11.877deg, 19.935m, 2.518m/s, 2.500m/s, 
  GPS5 45.407deg, 11.877deg, 19.941m, 2.513m/s, 2.520m/s, 
  GPS5 45.407deg, 11.877deg, 19.946m, 2.516m/s, 2.510m/s, 
  GPS5 45.407deg, 11.877deg, 19.956m, 2.536m/s, 2.520m/s, 
  GPS5 45.407deg, 11.877deg, 19.961m, 2.549m/s, 2.540m/s, 
  GPS5 45.407deg, 11.877deg, 19.961m, 2.599m/s, 2.550m/s, 
  GPS5 45.407deg, 11.877deg, 19.962m, 2.644m/s, 2.600m/s, 
  GPS5 45.407deg, 11.877deg, 19.966m, 2.662m/s, 2.640m/s, 
  GPS5 45.407deg, 11.877deg, 19.975m, 2.658m/s, 2.660m/s, 
  GPS5 45.407deg, 11.877deg, 19.981m, 2.679m/s, 2.660m/s, 
  GPS5 45.407deg, 11.877deg, 19.985m, 2.665m/s, 2.680m/s, 
  GPS5 45.407deg, 11.877deg, 19.989m, 2.682m/s, 2.670m/s, 
  GPS5 45.407deg, 11.877deg, 19.994m, 2.667m/s, 2.680m/s, 
  GPS5 45.407deg, 11.877deg, 19.998m, 2.699m/s, 2.670m/s, 
  GPS5 45.407deg, 11.877deg, 20.000m, 2.726m/s, 2.700m/s, 
  GPS5 45.407deg, 11.877deg, 20.010m, 2.712m/s, 2.730m/s, 
PAYLOAD TIME:
  4.004 to 5.005 seconds
SCALED DATA:
  GPS5 45.407deg, 11.877deg, 20.016m, 2.751m/s, 2.710m/s, 
  GPS5 45.407deg, 11.877deg, 20.023m, 2.755m/s, 2.750m/s, 
  GPS5 45.407deg, 11.877deg, 20.026m, 2.772m/s, 2.760m/s, 
  GPS5 45.407deg, 11.877deg, 20.028m, 2.775m/s, 2.770m/s, 
  GPS5 45.407deg, 11.877deg, 20.031m, 2.783m/s, 2.780m/s, 
  GPS5 45.407deg, 11.877deg, 20.033m, 2.811m/s, 2.780m/s, 
  GPS5 45.407deg, 11.877deg, 20.035m, 2.797m/s, 2.810m/s, 
  GPS5 45.407deg, 11.877deg, 20.045m, 2.791m/s, 2.800m/s, 
  GPS5 45.407deg, 11.877deg, 20.057m, 2.806m/s, 2.790m/s, 
  GPS5 45.407deg, 11.877deg, 20.065m, 2.830m/s, 2.810m/s, 
  GPS5 45.407deg, 11.877deg, 20.077m, 2.847m/s, 2.830m/s, 
  GPS5 45.407deg, 11.877deg, 20.090m, 2.832m/s, 2.850m/s, 
  GPS5 45.407deg, 11.877deg, 20.100m, 2.830m/s, 2.830m/s, 
  GPS5 45.407deg, 11.877deg, 20.110m, 2.855m/s, 2.830m/s, 
  GPS5 45.407deg, 11.877deg, 20.122m, 2.860m/s, 2.850m/s, 
  GPS5 45.407deg, 11.877deg, 20.132m, 2.876m/s, 2.860m/s, 
  GPS5 45.407deg, 11.877deg, 20.143m, 2.917m/s, 2.880m/s, 
  GPS5 45.407deg, 11.877deg, 20.158m, 2.936m/s, 2.920m/s,